On Thu, Dec 05, 2002 at 11:26:28AM +0100, Abdul-Kareem Abo-Namous
wrote:
> ahem...yes i'd agree on that...i changed it to something more
> meaningful and
> attached a new patch..ah the switching between c and php programming..;)
> 
> the patch is already being used for 2,5 months on an extremly big, extremly
> heavy-load 24x7 platform here at hp europe. basically all european hp sites
> rely on it. so i guess it's being tested :)


    cool, so:
 
    why not go-ahead and commit it yourself? if you don't already
    have a CVS-Acoout it's now time to apply for one;-)

    re,
    tc
> 
> cheers,
> Abdul
> 
> ----- Original Message -----
> From: "Thies C. Arntzen" <[EMAIL PROTECTED]>
> To: "Abdul-Kareem Abo-Namous" <[EMAIL PROTECTED]>
> Sent: Thursday, December 05, 2002 9:10 AM
> Subject: Re: [PHP-DEV] OCI patch
> 
> 
> > On Mon, Dec 02, 2002 at 02:27:12PM +0100, Abdul-Kareem Abo-Namous wrote:
> > > sure, here's thecode, diff'd against the latest cvs (from today). hope
> it's
> > > ok!
> >
> >     sorry for beeing late.
> >
> >     the line "if (charset != "\0")" looks bogus to me... you
> >     probably meant "if (*charset)" or "if (charset[ 0 ] != '\0')"?
> >
> >     besides that it looks OK to me.
> >
> >     how well tested is that patch? if it really works for you i
> >     think we are save to commit it to HEAD onece the "if" thingie
> >     is fixed.
> >
> >     re,
> >     tc
> >
> > >
> > > oci8_charsets_oci8c.diff is for oci8.c
> > > oci8_charsets_configm4.diff for config.m4 and guess what
> > > oci8_charsets_phpoci8h.diff is for ;-)))
> > >
> > > cheers,
> > > Abdul
> > >
> > > ----- Original Message -----
> > > From: "Maxim Maletsky" <[EMAIL PROTECTED]>
> > > To: "Abdul-Kareem Abo-Namous" <[EMAIL PROTECTED]>
> > > Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > > Sent: Thursday, November 28, 2002 1:27 PM
> > > Subject: Re: [PHP-DEV] OCI patch
> > >
> > >
> > > >
> > > > Thies was on it. But, I think he is pretty busy right now. Resubmit it
> > > > to me and I will look instead of him. Meanwhile, if Thies has time he
> > > > will spare the light on the issue.
> > > >
> > > > --
> > > > Maxim Maletsky
> > > > [EMAIL PROTECTED]
> > > >
> > > >
> > > >
> > > > "Abdul-Kareem Abo-Namous" <[EMAIL PROTECTED]> wrote... :
> > > >
> > > > > hi everyone
> > > > >
> > > > > what happened to the patch i submitted? is it of such bad quality?
> ;-)
> > > > >
> > > > > maybe someone can tell me more..? :-)
> > > > >
> > > > > thanks,
> > > > > Abdul
> > > > >
> > > > > ----- Original Message -----
> > > > > From: <[EMAIL PROTECTED]>
> > > > > To: "MaximMaletsky" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > > > > Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > > > > Sent: Thursday, October 17, 2002 12:55 PM
> > > > > Subject: Re: Re: [PHP-DEV] OCI patch
> > > > >
> > > > >
> > > > > > Ok, I've attached a pretty ok version. I had to update the
> config.m4
> > > to
> > > > > inculde a HAVE_OCI9 define, but since I'm not really good in this
> kind
> > > of
> > > > > thing, buildconf now reports a warning
> > > > > >
> > > > > > autoheader: No template for symbol `HAVE_OCI9'
> > > > > >
> > > > > > don't know what to do about it. otherwise everything compiles and
> runs
> > > > > smoothly, so I hope you'll enjoy :-).
> > > > > >
> > > > > > Abdul
> > > > > >
> > > > > > Maxim Maletsky <[EMAIL PROTECTED]> schrieb am 17.10.02 12:45:57:
> > > > > > > OK, then.
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Maxim Maletsky
> > > > > > > [EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > <[EMAIL PROTECTED]> wrote... :
> > > > > > >
> > > > > > > >
> > > > > > > > Thies, Maxim, if you could hang on for a few hours I'll be
> back
> > > with a
> > > > > few ideas and a cleaned up version of the patches + a switch for
> oracle
> > > 9+
> > > > > to enable the new nls functions.
> > > > > > > >
> > > > > > > > Abdul
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > --------------------------------------------------------------------------
> > > --
> > > > > ----
> > > > >
> > > > >
> > > > > > --- oci8.c Wed Oct  9 16:55:16 2002
> > > > > > +++ oci8.c Thu Oct 17 13:32:09 2002
> > > > > > @@ -20,7 +20,7 @@
> > > > > >
> > > > >
> +----------------------------------------------------------------------+
> > > > > >   */
> > > > > >
> > > > > > -/* $Id: oci8.c,v 1.176 2002/09/12 09:48:02 thies Exp $ */
> > > > > > +/* $Id: oci8.c,v 1.175 2002/08/20 07:26:50 edink Exp $ */
> > > > > >
> > > > > >  /* TODO list:
> > > > > >   *
> > > > > > @@ -199,7 +199,7 @@
> > > > > >  static oci_server *_oci_open_server(char *dbname,int persistent);
> > > > > >  static void _oci_close_server(oci_server *server);
> > > > > >
> > > > > > -static oci_session *_oci_open_session(oci_server* server,char
> > > > > *username,char *password,int persistent,int exclusive);
> > > > > > +static oci_session *_oci_open_session(oci_server* server,char
> > > > > *username,char *password,int persistent,int exclusive,char
> *charset);
> > > > > >  static void _oci_close_session(oci_session *session);
> > > > > >
> > > > > >  static sb4 oci_bind_in_callback(dvoid *, OCIBind *, ub4, ub4,
> dvoid
> > > **,
> > > > > ub4 *, ub1 *, dvoid **);
> > > > > > @@ -451,7 +451,7 @@
> > > > > >   OCI_DEFAULT,
> > > > > >   0,
> > > > > >   NULL));
> > > > > > -
> > > > > > +
> > > > > >   CALL_OCI(OCIHandleAlloc(
> > > > > >   OCI(pEnv),
> > > > > >   (dvoid **)&OCI(pError),
> > > > > > @@ -631,7 +631,7 @@
> > > > > >
> > > > > >   php_info_print_table_start();
> > > > > >   php_info_print_table_row(2, "OCI8 Support", "enabled");
> > > > > > - php_info_print_table_row(2, "Revision", "$Revision: 1.176 $");
> > > > > > + php_info_print_table_row(2, "Revision", "$Revision: 1.175 $");
> > > > > >  #ifndef PHP_WIN32
> > > > > >   php_info_print_table_row(2, "Oracle Version",
> PHP_OCI8_VERSION );
> > > > > >   php_info_print_table_row(2, "Compile-time ORACLE_HOME",
> > > PHP_OCI8_DIR );
> > > > > > @@ -1158,9 +1158,9 @@
> > > > > >   php_error(E_WARNING, "Unknown descriptor type
> %d.",Z_TYPE_P(descr));
> > > > > >   return 0;
> > > > > >   }
> > > > > > -
> > > > > > +
> > > > > >   CALL_OCI_RETURN(OCI(error), OCIDescriptorAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   (dvoid*)&(descr->ocidescr),
> > > > > >   Z_TYPE_P(descr),
> > > > > >   (size_t) 0,
> > > > > > @@ -1244,7 +1244,7 @@
> > > > > >   oci_debug("_oci_make_zval: %16s,retlen = %4d,retlen4 =
> > > %d,storage_size4
> > > > > = %4d,indicator %4d, retcode = %4d",
> > > > > >
> > > > >
> > >
> column->name,column->retlen,column->retlen4,column->storage_size4,column->in
> > > > > dicator,column->retcode);
> > > > > >
> > > > > > - if ((! statement->has_data) || (column->indicator == -1)) { /*
> > > column is
> > > > > NULL or statment has no current data */
> > > > > > + if (column->indicator == -1) { /* column is NULL */
> > > > > >   ZVAL_NULL(value);
> > > > > >   return 0;
> > > > > >   }
> > > > > > @@ -1351,14 +1351,14 @@
> > > > > >   statement = ecalloc(1,sizeof(oci_statement));
> > > > > >
> > > > > >      CALL_OCI(OCIHandleAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >       (dvoid **)&statement->pStmt,
> > > > > >   OCI_HTYPE_STMT,
> > > > > >   0,
> > > > > >   NULL));
> > > > > >
> > > > > >      CALL_OCI(OCIHandleAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   (dvoid **)&statement->pError,
> > > > > >   OCI_HTYPE_ERROR,
> > > > > >   0,
> > > > > > @@ -1392,9 +1392,7 @@
> > > > > >   if (query) {
> > > > > >   statement->last_query = estrdup(query);
> > > > > >   }
> > > > > > -
> > > > > >   statement->conn = connection;
> > > > > > - statement->has_data = 0;
> > > > > >
> > > > > >   statement->id = zend_list_insert(statement,le_stmt);
> > > > > >
> > > > > > @@ -1771,7 +1769,6 @@
> > > > > >   }
> > > > > >
> > > > > >   statement->error = 0; /* OCI_NO_DATA is NO error for us!!! */
> > > > > > - statement->has_data = 0;
> > > > > >
> > > > > >   return 0;
> > > > > >   }
> > > > > > @@ -1831,16 +1828,12 @@
> > > > > >
> _oci_make_zval(column->define->zval,statement,column,"OCIFetch",0
> > > > > TSRMLS_CC);
> > > > > >   }
> > > > > >
> > > > > > - statement->has_data = 1;
> > > > > > -
> > > > > >   return 1;
> > > > > >   }
> > > > > >
> > > > > >   oci_error(statement->pError, func, statement->error);
> > > > > >   oci_handle_error(statement->conn, statement->error);
> > > > > >
> > > > > > - statement->has_data = 0;
> > > > > > -
> > > > > >   return 0;
> > > > > >  }
> > > > > >
> > > > > > @@ -1855,8 +1848,8 @@
> > > > > >   ub4 siz = 0;
> > > > > >   ub4 readlen = 0;
> > > > > >   char *buf;
> > > > > > +
> > > > > >   TSRMLS_FETCH();
> > > > > > -
> > > > > >   *loblen = 0;
> > > > > >
> > > > > >   if (Z_TYPE_P(mydescr) == OCI_DTYPE_FILE) {
> > > > > > @@ -1888,17 +1881,17 @@
> > > > > >   buf = emalloc(readlen + 1);
> > > > > >
> > > > > >   while (readlen > 0) { /* thies loop should not be entered on
> readlen
> > > ==
> > > > > 0 */
> > > > > > - CALL_OCI_RETURN(connection->error, OCILobRead(
> > > > > > +   CALL_OCI_RETURN(connection->error, OCILobRead(
> > > > > >   connection->pServiceContext,
> > > > > >   connection->pError,
> > > > > >   mydescr->ocidescr,
> > > > > > - &readlen, /* IN/OUT bytes toread/read */
> > > > > > + &readlen, /* IN/OUT bytes toread/read */
> > > > > >   siz + 1, /* offset (starts with 1) */
> > > > > >   (dvoid *) ((char *) buf + siz),
> > > > > >   readlen, /* size of buffer */
> > > > > >   (dvoid *)0,
> > > > > >   (OCICallbackLobRead) 0, /* callback... */
> > > > > > - (ub2) 0, /* The character set ID of the buffer data. */
> > > > > > + (ub2) connection->session->charsetId, /* The character set ID of
> the
> > > > > buffer data. */
> > > > > >   (ub1) SQLCS_IMPLICIT)); /* The character set form of the buffer
> > > data. */
> > > > > >
> > > > > >   siz += readlen;
> > > > > > @@ -1911,7 +1904,7 @@
> > > > > >   break;
> > > > > >   }
> > > > > >   }
> > > > > > -
> > > > > > +
> > > > > >   if (connection->error) {
> > > > > >   oci_error(connection->pError, "OCILobRead", connection->error);
> > > > > >   oci_handle_error(connection, connection->error);
> > > > > > @@ -1936,11 +1929,11 @@
> > > > > >   buf = erealloc(buf,siz+1);
> > > > > >   buf[ siz ] = 0;
> > > > > >
> > > > > > + oci_debug("OCIloadlob: size=%d",siz);
> > > > > > +
> > > > > >   *buffer = buf;
> > > > > >   *loblen = siz;
> > > > > >
> > > > > > - oci_debug("OCIloadlob: size=%d",siz);
> > > > > > -
> > > > > >   return 0;
> > > > > >  }
> > > > > >  /* }}} */
> > > > > > @@ -2119,11 +2112,12 @@
> > > > > >
> > > > > >   */
> > > > > >
> > > > > > -static oci_session *_oci_open_session(oci_server* server,char
> > > > > *username,char *password,int persistent,int exclusive)
> > > > > > +static oci_session *_oci_open_session(oci_server* server,char
> > > > > *username,char *password,int persistent,int exclusive,char *charset)
> > > > > >  {
> > > > > >   oci_session *session = 0, *psession = 0;
> > > > > >   OCISvcCtx *svchp = 0;
> > > > > >   char *hashed_details;
> > > > > > + ub2 charsetid;
> > > > > >      TSRMLS_FETCH();
> > > > > >
> > > > > >   /*
> > > > > > @@ -2172,22 +2166,56 @@
> > > > > >   session->server = server;
> > > > > >   session->exclusive = exclusive;
> > > > > >
> > > > > > + #ifdef HAVE_OCI9
> > > > > > + //following chunk is Oracle 9i+ ONLY
> > > > > > + if (charset != "\0") {
> > > > > > + //get ub2 charset id based on charset
> > > > > > + //this is pretty secure, since if we don't have a valid
> character
> > > set
> > > > > name,
> > > > > > + //0 comes back and we can still use the 0 in all further
> > > statements ->
> > > > > OCI uses NLS_LANG
> > > > > > + //setting in that case
> > > > > > + CALL_OCI_RETURN(charsetid, OCINlsCharSetNameToId(
> > > > > > + OCI(pEnv),
> > > > > > + charset));
> > > > > > +
> > > > > > + session->charsetId = charsetid;
> > > > > > + oci_debug("oci_do_connect: using charset id=%d",charsetid);
> > > > > > + }
> > > > > > +
> > > > > > + //create an environment using the character set id, Oracle 9i+
> ONLY
> > > > > > + CALL_OCI(OCIEnvNlsCreate(
> > > > > > + &session->pEnv,
> > > > > > + OCI_DEFAULT,
> > > > > > + 0,
> > > > > > + NULL,
> > > > > > + NULL,
> > > > > > + NULL,
> > > > > > + 0,
> > > > > > + NULL,
> > > > > > + charsetid,
> > > > > > + charsetid));
> > > > > > +
> > > > > > + #else
> > > > > > + //fallback solution (simply use global env and charset)
> > > > > > + session->pEnv = OCI(pEnv);
> > > > > > + session->charsetId = 0;
> > > > > > +
> > > > > > + #endif  /*HAVE_OCI9*/
> > > > > > +
> > > > > >   /* allocate temporary Service Context */
> > > > > >   CALL_OCI_RETURN(OCI(error), OCIHandleAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + session->pEnv,
> > > > > >   (dvoid **)&svchp,
> > > > > >   OCI_HTYPE_SVCCTX,
> > > > > >   0,
> > > > > > - NULL));
> > > > > > + NULL));
> > > > > >
> > > > > >   if (OCI(error) != OCI_SUCCESS) {
> > > > > >   oci_error(OCI(pError), "_oci_open_session: OCIHandleAlloc
> > > > > OCI_HTYPE_SVCCTX", OCI(error));
> > > > > >   goto CLEANUP;
> > > > > >   }
> > > > > >
> > > > > > - /* allocate private session-handle */
> > > > > >   CALL_OCI_RETURN(OCI(error), OCIHandleAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + session->pEnv,
> > > > > >   (dvoid **)&session->pSession,
> > > > > >   OCI_HTYPE_SESSION,
> > > > > >   0,
> > > > > > @@ -2305,7 +2333,7 @@
> > > > > >   if (session->is_open) {
> > > > > >   /* Temporary Service Context */
> > > > > >   CALL_OCI_RETURN(OCI(error), OCIHandleAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + session->pEnv,
> > > > > >   (dvoid **) &svchp,
> > > > > >   (ub4) OCI_HTYPE_SVCCTX,
> > > > > >   (size_t) 0,
> > > > > > @@ -2365,6 +2393,10 @@
> > > > > >   (ub4) OCI_HTYPE_SESSION));
> > > > > >   }
> > > > > >
> > > > > > + CALL_OCI(OCIHandleFree(
> > > > > > + (dvoid *)session->pEnv,
> > > > > > + OCI_HTYPE_ENV));
> > > > > > +
> > > > > >   hashed_details = session->hashed_details;
> > > > > >
> > > > > >   if (! OCI(shutdown)) {
> > > > > > @@ -2551,13 +2583,26 @@
> > > > > >   */
> > > > > >  static void oci_do_connect(INTERNAL_FUNCTION_PARAMETERS,int
> > > > > persistent,int exclusive)
> > > > > >  {
> > > > > > -    char *username, *password, *dbname;
> > > > > > -    zval **userParam, **passParam, **dbParam;
> > > > > > +    char *username, *password, *dbname, *charset;
> > > > > > +    zval **userParam, **passParam, **dbParam, **charParam;
> > > > > >      oci_server *server = 0;
> > > > > >      oci_session *session = 0;
> > > > > >      oci_connection *connection = 0;
> > > > > > -
> > > > > > -    if (zend_get_parameters_ex(3, &userParam, &passParam,
> &dbParam)
> > > ==
> > > > > SUCCESS) {
> > > > > > +
> > > > > > + charset = "\0";
> > > > > > +    //if a forth parameter is handed over, it is the charset
> > > identifier
> > > > > (but is only used in Oracle 9i+)
> > > > > > +    if (zend_get_parameters_ex(4, &userParam, &passParam,
> &dbParam,
> > > > > &charParam) == SUCCESS) {
> > > > > > + convert_to_string_ex(userParam);
> > > > > > + convert_to_string_ex(passParam);
> > > > > > + convert_to_string_ex(dbParam);
> > > > > > + convert_to_string_ex(charParam);
> > > > > > +
> > > > > > + username = Z_STRVAL_PP(userParam);
> > > > > > + password = Z_STRVAL_PP(passParam);
> > > > > > + dbname = Z_STRVAL_PP(dbParam);
> > > > > > + charset = Z_STRVAL_PP(charParam);
> > > > > > + oci_debug("oci_do_connect: using charset=%s",charset);
> > > > > > +    } else if (zend_get_parameters_ex(3, &userParam, &passParam,
> > > > > &dbParam) == SUCCESS) {
> > > > > >   convert_to_string_ex(userParam);
> > > > > >   convert_to_string_ex(passParam);
> > > > > >   convert_to_string_ex(dbParam);
> > > > > > @@ -2577,7 +2622,7 @@
> > > > > >      }
> > > > > >
> > > > > >   connection = (oci_connection *)
> ecalloc(1,sizeof(oci_connection));
> > > > > > -
> > > > > > +
> > > > > >   if (! connection) {
> > > > > >   goto CLEANUP;
> > > > > >   }
> > > > > > @@ -2596,7 +2641,8 @@
> > > > > >   persistent = server->persistent;
> > > > > >   }
> > > > > >
> > > > > > - session =
> > > > > _oci_open_session(server,username,password,persistent,exclusive);
> > > > > > + session =
> > > > >
> > >
> _oci_open_session(server,username,password,persistent,exclusive,charset);
> > > > > > +
> > > > > >
> > > > > >   if (! session) {
> > > > > >   goto CLEANUP;
> > > > > > @@ -3476,7 +3522,7 @@
> > > > > >              }
> > > > > >
> > > > > >              connection->error =
> > > > > > -                OCILobIsTemporary(OCI(pEnv),
> > > > > > +                OCILobIsTemporary(connection->session->pEnv,
> > > > > >                                    connection->pError,
> > > > > >                                    mylob,
> > > > > >                                    &is_temporary);
> > > > > > @@ -4601,7 +4647,7 @@
> > > > > >              oci_debug("OCIfreecollection: coll=%d",inx);
> > > > > >
> > > > > >   CALL_OCI_RETURN(connection->error, OCIObjectFree(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   connection->pError,
> > > > > >   (dvoid *)coll->coll,
> > > > > >   (ub2)(OCI_OBJECTFREE_FORCE)));
> > > > > > @@ -4653,7 +4699,7 @@
> > > > > >   convert_to_string_ex(arg);
> > > > > >   if(Z_STRLEN_PP(arg) == 0) {
> > > > > >   CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > > > -   OCI(pEnv),
> > > > > > +   connection->session->pEnv,
> > > > > >     connection->pError,
> > > > > >     (dword *)0,
> > > > > >     &null_ind,
> > > > > > @@ -4686,7 +4732,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      (dvoid *) &dt,
> > > > > >      (dvoid *) &new_ind,
> > > > > > @@ -4702,7 +4748,7 @@
> > > > > >      convert_to_string_ex(arg);
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCIStringAssignText(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      Z_STRVAL_PP(arg),
> > > > > >      Z_STRLEN_PP(arg),
> > > > > > @@ -4714,7 +4760,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      (dvoid *) ocistr,
> > > > > >      (dvoid *) &new_ind,
> > > > > > @@ -4751,7 +4797,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCICollAppend(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      (dvoid *) &num,
> > > > > >      (dvoid *) &new_ind,
> > > > > > @@ -4799,7 +4845,7 @@
> > > > > >   connection = coll->conn;
> > > > > >
> > > > > >   CALL_OCI_RETURN(connection->error, OCICollGetElem(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   connection->pError,
> > > > > >   coll->coll,
> > > > > >   ndx,
> > > > > > @@ -4839,7 +4885,7 @@
> > > > > >      RETURN_STRINGL(buff,len,1);
> > > > > >      case OCI_TYPECODE_VARCHAR2 :
> > > > > >      ocistr = *(OCIString **)elem;
> > > > > > -    str = OCIStringPtr(OCI(pEnv),ocistr); /* XXX not protected
> > > against
> > > > > recursion! */
> > > > > > +    str = OCIStringPtr(connection->session->pEnv,ocistr); /* XXX
> not
> > > > > protected against recursion! */
> > > > > >      RETURN_STRINGL(str,strlen(str),1);
> > > > > >      break;
> > > > > >      case OCI_TYPECODE_UNSIGNED16 :                       /*
> UNSIGNED
> > > > > SHORT  */
> > > > > > @@ -4898,7 +4944,7 @@
> > > > > >   connection = coll->conn;
> > > > > >
> > > > > >   CALL_OCI_RETURN(connection->error, OCICollAssign(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   connection->pError,
> > > > > >   from_coll->coll,
> > > > > >   coll->coll));
> > > > > > @@ -4958,7 +5004,7 @@
> > > > > >
> > > > > >   if(Z_STRLEN_PP(val) == 0) {
> > > > > >   CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > > > -   OCI(pEnv),
> > > > > > +   connection->session->pEnv,
> > > > > >     connection->pError,
> > > > > >     ndx,
> > > > > >     (dword *)0,
> > > > > > @@ -4991,7 +5037,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      ndx,
> > > > > >      (dword *)&dt,
> > > > > > @@ -5007,7 +5053,7 @@
> > > > > >      convert_to_string_ex(val);
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCIStringAssignText(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      Z_STRVAL_PP(val),
> > > > > >      Z_STRLEN_PP(val),
> > > > > > @@ -5019,7 +5065,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      ndx,
> > > > > >      (dword *)ocistr,
> > > > > > @@ -5058,7 +5104,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      ndx,
> > > > > >      (dword *)&num,
> > > > > > @@ -5095,7 +5141,7 @@
> > > > > >   connection = coll->conn;
> > > > > >
> > > > > >   CALL_OCI_RETURN(connection->error, OCICollSize(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   coll->conn->pError,
> > > > > >   coll->coll,
> > > > > >   &sz));
> > > > > > @@ -5198,7 +5244,7 @@
> > > > > >   zend_list_addref(connection->id);
> > > > > >
> > > > > >   CALL_OCI_RETURN(connection->error, OCITypeByName(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   connection->pError,
> > > > > >   connection->pServiceContext,
> > > > > >   ac==3?(text *)Z_STRVAL_PP(schema):(text *)0,
> > > > > > @@ -5217,7 +5263,7 @@
> > > > > >      }
> > > > > >
> > > > > >   CALL_OCI_RETURN(connection->error, OCIHandleAlloc(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   (dvoid **) &dschp1,
> > > > > >   (ub4) OCI_HTYPE_DESCRIBE,
> > > > > >   (size_t) 0,
> > > > > > @@ -5301,7 +5347,7 @@
> > > > > >      }
> > > > > >
> > > > > >      CALL_OCI_RETURN(connection->error, OCITypeByRef(
> > > > > > -    OCI(pEnv),
> > > > > > +    connection->session->pEnv,
> > > > > >      connection->pError,
> > > > > >      coll->elem_ref,
> > > > > >      OCI_DURATION_SESSION,
> > > > > > @@ -5333,7 +5379,7 @@
> > > > > >
> > > > > >   /* Create object to hold return table */
> > > > > >   CALL_OCI_RETURN(connection->error, OCIObjectNew(
> > > > > > - OCI(pEnv),
> > > > > > + connection->session->pEnv,
> > > > > >   connection->pError,
> > > > > >   connection->pServiceContext,
> > > > > >   OCI_TYPECODE_TABLE,
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > --------------------------------------------------------------------------
> > > --
> > > > > ----
> > > > >
> > > > >
> > > > > > --- php_oci8.h Thu Sep 12 11:48:03 2002
> > > > > > +++ php_oci8.h Thu Oct 17 13:46:52 2002
> > > > > > @@ -17,7 +17,7 @@
> > > > > >
> > > > >
> +----------------------------------------------------------------------+
> > > > > >  */
> > > > > >
> > > > > > -/* $Id: php_oci8.h,v 1.24 2002/09/12 09:48:03 thies Exp $ */
> > > > > > +/* $Id: php_oci8.h,v 1.23 2002/02/10 12:41:52 thies Exp $ */
> > > > > >
> > > > > >  #if HAVE_OCI8
> > > > > >  # ifndef PHP_OCI8_H
> > > > > > @@ -69,7 +69,9 @@
> > > > > >   int exclusive;
> > > > > >   char *hashed_details;
> > > > > >   oci_server *server;
> > > > > > - OCISession *pSession;
> > > > > > + OCIEnv *pEnv; //sessions own environment
> > > > > > + OCISession *pSession;
> > > > > > + ub2 charsetId; //sessions used character set (mostly this will
> be 0,
> > > so
> > > > > NLS_LANG will be used.
> > > > > >  } oci_session;
> > > > > >
> > > > > >  typedef struct {
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > --------------------------------------------------------------------------
> > > --
> > > > > ----
> > > > >
> > > > >
> > > > > > --- config.m4.orig Thu Oct 17 13:27:52 2002
> > > > > > +++ config.m4 Thu Oct 17 13:28:02 2002
> > > > > > @@ -66,7 +66,7 @@
> > > > > >        PHP_ADD_LIBRARY_WITH_PATH(clntsh, $OCI8_DIR/lib,
> > > > > OCI8_SHARED_LIBADD)
> > > > > >        ;;
> > > > > >
> > > > > > -    8.1|9.0)
> > > > > > +    8.1)
> > > > > >        PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
> > > > > >        if test -f $OCI8_DIR/lib/libocijdbc8.so ; then
> > > > > >          PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
> > > > > > @@ -75,6 +75,18 @@
> > > > > >        AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
> > > > > >        AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
> > > > > >        ;;
> > > > > > +
> > > > > > +    9.0)
> > > > > > +      PHP_ADD_LIBRARY(clntsh, 1, OCI8_SHARED_LIBADD)
> > > > > > +      if test -f $OCI8_DIR/lib/libocijdbc8.so ; then
> > > > > > +        PHP_ADD_LIBRARY(ocijdbc8, 1, OCI8_SHARED_LIBADD)
> > > > > > +      fi
> > > > > > +      PHP_ADD_LIBPATH($OCI8_DIR/lib, OCI8_SHARED_LIBADD)
> > > > > > +      AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
> > > > > > +      AC_DEFINE(HAVE_OCI8_ATTR_STATEMENT,1,[ ])
> > > > > > +      AC_DEFINE(HAVE_OCI9,1,[])
> > > > > > +      ;;
> > > > > > +
> > > > > >
> > > > > >      *)
> > > > > >        AC_MSG_ERROR(Unsupported Oracle version!)
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > --------------------------------------------------------------------------
> > > --
> > > > > ----
> > > > >
> > > > >
> > > > > > --
> > > > > > PHP Development Mailing List <http://www.php.net/>
> > > > > > To unsubscribe, visit: http://www.php.net/unsub.php
> > > > >
> > > >
> >
> >
> >
> >
> >
> > --
> > Thies C. Arntzen   -   Looking for all sorts of freelance work  -   just
> ask..
> >      http://www.amazon.de/exec/obidos/wishlist/AB9DY62QWDSZ
> 

> -- 
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
Thies C. Arntzen   -   Looking for all sorts of freelance work  -   just ask..
                  http://www.amazon.de/exec/obidos/wishlist/AB9DY62QWDSZ

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to