> > > 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

Reply via email to