> > > I've modified the following files to allow for use of > OCI_SHARED in ext/oci8 > > > module if OCI8_VERSION >= 8.1, which will provide memory > savings by sharing > > > connection and statement data (refer to > > > > http://www.csee.umbc.edu/help/oracle8/server.815/a67846/basics.htm; search > > > for "Shared Data Mode") between connections and statments > respectively. I > > > only have access to ext/oci8, so I can't check this in: > > Haven't really played with it, but the possiblity of some thread issues > come into my mind. How have you tested it? >
I have tested it and it works for me. As far as thread safety, all of OCI could suffer from thread safety problems, not just this feature. If we want ext/oci8 to be thread safe, we should really pass the OCI_THREADED flag into OCIInitialize(). At first glance it seems that thread safety should be accounted for #ifdef ZTS. Is this correct? I can add it if required. > > > > there should be no nned to change anything outside ext/oci8/ > > to make this work. configure is auto-generated. > > > > just go ahead and commit the stuff to ext/oci8 > > It should only be within the ext/oci8/oci8.c thing, I presume. We are > talking about a flag for OCI(?)Logon function, right? > It's a flag to the OCIInitialize() that determines if statement data will be shared. No other code changes are necessary, as OCI will manage the shared data transparently. > > Also, since this is a ">= 8.1" thingie, you'd need to see whether it > compiles and doesnt crash on lower versions of OCI (is OCI_SHARED > defined in all OCIs? You need to control it for BC). > 8.0 doens't have OCI_SHARED defined, so I modified config.m4 to define HAVE_OCI8_SHARED_MODE for OCI8_VERSION >= 8.1 and verified that it compiles correctly on both (8.0.5 vs 8.1.7). -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php