diff options
-rw-r--r-- | ext/interbase/interbase.c | 39 | ||||
-rw-r--r-- | ext/interbase/php_interbase.h | 33 |
2 files changed, 38 insertions, 34 deletions
diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c index 928a8d9d6c..8e91546549 100644 --- a/ext/interbase/interbase.c +++ b/ext/interbase/interbase.c @@ -276,7 +276,6 @@ typedef struct { short sqlind; } BIND_BUF; - static inline int _php_ibase_string_to_quad(char const *id, ISC_QUAD *qd) { /* shortcut for most common case */ @@ -284,10 +283,12 @@ static inline int _php_ibase_string_to_quad(char const *id, ISC_QUAD *qd) return sscanf(id, BLOB_ID_MASK, (ISC_UINT64 *) qd); } else { ISC_UINT64 res; - int n = sscanf(id, BLOB_ID_MASK, &res); - qd->gds_quad_high = (long) (res >> 0x20); - qd->gds_quad_low = (unsigned long) (res & 0xFFFFFFFF); - return n; + if (sscanf(id, BLOB_ID_MASK, &res)) { + qd->gds_quad_high = (ISC_LONG) (res >> 0x20); + qd->gds_quad_low = (ISC_ULONG) (res & 0xFFFFFFFF); + return 1; + } + return 0; } } @@ -1785,31 +1786,31 @@ PHP_FUNCTION(ibase_trans) last_tpb[tpb_len++] = isc_tpb_version3; /* access mode */ - if (trans_argl & PHP_IBASE_READ) { /* READ ONLY TRANSACTION */ + if (PHP_IBASE_READ == (trans_argl & PHP_IBASE_READ)) { last_tpb[tpb_len++] = isc_tpb_read; - } else { - last_tpb[tpb_len++] = isc_tpb_write; /* default access mode */ + } else if (PHP_IBASE_WRITE == (trans_argl & PHP_IBASE_WRITE)) { + last_tpb[tpb_len++] = isc_tpb_write; } /* isolation level */ - if (trans_argl & PHP_IBASE_COMMITTED) { + if (PHP_IBASE_COMMITTED == (trans_argl & PHP_IBASE_COMMITTED)) { last_tpb[tpb_len++] = isc_tpb_read_committed; - if (trans_argl & PHP_IBASE_REC_VERSION) { + if (PHP_IBASE_REC_VERSION == (trans_argl & PHP_IBASE_REC_VERSION)) { last_tpb[tpb_len++] = isc_tpb_rec_version; - } else { - last_tpb[tpb_len++] = isc_tpb_no_rec_version; /* default in read_committed */ + } else if (PHP_IBASE_REC_NO_VERSION == (trans_argl & PHP_IBASE_REC_NO_VERSION)) { + last_tpb[tpb_len++] = isc_tpb_no_rec_version; } - } else if (trans_argl & PHP_IBASE_CONSISTENCY) { + } else if (PHP_IBASE_CONSISTENCY == (trans_argl & PHP_IBASE_CONSISTENCY)) { last_tpb[tpb_len++] = isc_tpb_consistency; - } else { - last_tpb[tpb_len++] = isc_tpb_concurrency; /* default isolation level */ + } else if (PHP_IBASE_CONCURRENCY == (trans_argl & PHP_IBASE_CONCURRENCY)) { + last_tpb[tpb_len++] = isc_tpb_concurrency; } /* lock resolution */ - if (trans_argl & PHP_IBASE_NOWAIT) { + if (PHP_IBASE_NOWAIT == (trans_argl & PHP_IBASE_NOWAIT)) { last_tpb[tpb_len++] = isc_tpb_nowait; - } else { - last_tpb[tpb_len++] = isc_tpb_wait; /* default lock resolution */ + } else if (PHP_IBASE_WAIT == (trans_argl & PHP_IBASE_WAIT)) { + last_tpb[tpb_len++] = isc_tpb_wait; } } } @@ -3550,7 +3551,7 @@ PHP_FUNCTION(ibase_blob_echo) zval **blob_arg, **link_arg; ibase_db_link *link; ibase_trans *trans = NULL; - ibase_blob ib_blob_id = { NULL, { 0, 0 }, 0 }; + ibase_blob ib_blob_id = { NULL, { 0, 0 }, BLOB_OUTPUT }; char bl_data[IBASE_BLOB_SEG]; unsigned short seg_len; diff --git a/ext/interbase/php_interbase.h b/ext/interbase/php_interbase.h index f5da6b611a..b9713fcdc7 100644 --- a/ext/interbase/php_interbase.h +++ b/ext/interbase/php_interbase.h @@ -180,23 +180,26 @@ typedef struct { enum php_interbase_option { PHP_IBASE_DEFAULT = 0, - PHP_IBASE_UNIXTIME = 2, - PHP_IBASE_TIMESTAMP = 4, - PHP_IBASE_DATE = 8, - PHP_IBASE_TIME = 16, - /* fetch args */ + /* fetch flags */ PHP_IBASE_FETCH_BLOBS = 1, PHP_IBASE_FETCH_ARRAYS = 2, - /* transactions */ - PHP_IBASE_WRITE = 2, - PHP_IBASE_READ = 4, - PHP_IBASE_COMMITTED = 8, - PHP_IBASE_CONSISTENCY = 16, - PHP_IBASE_CONCURRENCY = 32, - PHP_IBASE_REC_VERSION = 64, - PHP_IBASE_REC_NO_VERSION = 128, - PHP_IBASE_NOWAIT = 256, - PHP_IBASE_WAIT = 512 + PHP_IBASE_UNIXTIME = 4, + /* timefmt flags */ + PHP_IBASE_TIMESTAMP = 1, + PHP_IBASE_DATE = 2, + PHP_IBASE_TIME = 4, + /* transaction access mode */ + PHP_IBASE_WRITE = 0, /* default */ + PHP_IBASE_READ = 1, + /* transaction isolation level */ + PHP_IBASE_CONCURRENCY = 0, /* default */ + PHP_IBASE_COMMITTED = 2, + PHP_IBASE_REC_NO_VERSION = 0, /* default */ + PHP_IBASE_REC_VERSION = 4, + PHP_IBASE_CONSISTENCY = 8, + /* transaction lock resolution */ + PHP_IBASE_WAIT = 0, /* default */ + PHP_IBASE_NOWAIT = 16 }; #ifdef ZTS |