From: nigel at e-easy dot com dot au
Operating system: Irrelevant
PHP version: Irrelevant
PHP Bug Type: InterBase related
Bug description: API missing two important parameters
Description:
------------
PHP's support for Interbase(Firebird) is missing two important
features for transaction handling - Shared, and Protected.
These two additions enable performance to surpass Oracle on
updates under heavy load.
The patch is as follows:
--- interbase.c.orig Thu Aug 28 11:39:22 2003
+++ interbase.c Thu Aug 28 12:22:44 2003
@@ -563,6 +563,8 @@
REGISTER_LONG_CONSTANT("IBASE_REC_NO_VERSION",
PHP_IBASE_REC_NO_VERSION
, CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IBASE_NOWAIT",
PHP_IBASE_NOWAIT, CONST_PERSISTE
NT);
REGISTER_LONG_CONSTANT("IBASE_WAIT",
PHP_IBASE_WAIT, CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("IBASE_SHARED",
PHP_IBASE_SHARED, CONST_PERSISTE
NT);
+ REGISTER_LONG_CONSTANT("IBASE_PROTECTED",
PHP_IBASE_PROTECTED, CONST_PE
RSISTENT);
return SUCCESS;
}
@@ -1574,6 +1576,13 @@
tpb[tpb_len++] = isc_tpb_nowait;
} else {
tpb[tpb_len++] = isc_tpb_wait; /* default lock
resolut
ion */
+ }
+ /* Pre Allocation Modes */
+ if (trans_argl & PHP_IBASE_SHARED) {
+ tpb[tpb_len++] = isc_tpb_shared;
+ }
+ if (trans_argl & PHP_IBASE_PROTECTED) {
+ tpb[tpb_len++] = isc_tpb_shared;
}
}
--- php_interbase.h.orig Thu Aug 28 11:59:34 2003
+++ php_interbase.h Thu Aug 28 12:21:34 2003
@@ -175,7 +175,9 @@
PHP_IBASE_REC_VERSION = 64,
PHP_IBASE_REC_NO_VERSION = 128,
PHP_IBASE_NOWAIT = 256,
- PHP_IBASE_WAIT = 512
+ PHP_IBASE_WAIT = 512,
+ PHP_IBASE_SHARED = 1024,
+ PHP_IBASE_PROTECTED = 2048
};
#ifdef ZTS
--
Edit bug report at http://bugs.php.net/?id=25282&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=25282&r=trysnapshot4
Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=25282&r=trysnapshot5
Fixed in CVS: http://bugs.php.net/fix.php?id=25282&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=25282&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=25282&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=25282&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=25282&r=support
Expected behavior: http://bugs.php.net/fix.php?id=25282&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=25282&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=25282&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=25282&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=25282&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=25282&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=25282&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=25282&r=gnused