#26892 [Fbk->Opn]: ocinewcollection fails with Oracle 9.2
| From: | tomy at envox dot hr | Date: | Thu, 15 Jan 2004 11:00:55 +0000 |
| Subject: | #26892 [Fbk->Opn]: ocinewcollection fails with Oracle 9.2 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-53371@lists.php.net to get a copy of this message | ||
ID: 26892
User updated by: tomy at envox dot hr
Reported By: tomy at envox dot hr
-Status: Feedback
+Status: Open
Bug Type: OCI8 related
Operating System: Suse 8.2
PHP Version: 4CVS-2004-01-13 (stable)
New Comment:
The *COLLECTIONS* defines have been fixed now.
Unfortunately the original bug submitted still exists!
Output from reproducable script follows (ocinewcollection fails and
returns false with a warning):
"
OCIDebug: _oci_open_server new conn=0
dname=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.41)(PORT=1521)))(CONNECT_DATA=(SID=pirana)(SERVER=DEDICATED)))
OCIDebug: _oci_open_session new sess=3 user=system
OCIDebug: oci_do_connect: id=4
Warning: ocinewcollection() [function.ocinewcollection]: OCITypeByName:
ORA-21301: not initialized in object mode in
/srv/www/htdocs/envox/info2.php on line 14
Collection failed
OCIDebug: START php_rshutdown_oci
OCIDebug: END php_rshutdown_oci
OCIDebug: START _oci_coll_list_dtor: 5
OCIDebug: END _oci_coll_list_dtor: 5
OCIDebug: START _oci_conn_list_dtor: id=4
OCIDebug: nothing to do..
OCIDebug: START _oci_close_session: logging-off sess=3
OCIDebug: END _oci_conn_list_dtor: id=4
"
Previous Comments:
------------------------------------------------------------------------
[2004-01-15 05:27:01] sniper@php.net
The snapshot is too old. (the 'typo' is fixed in CVS, snapshot just
doesn't have the changes in it yet)
Get the latest snapshot now.
------------------------------------------------------------------------
[2004-01-15 03:47:52] tomy at envox dot hr
The *COLLECTIONS* defines have NOT been fixed!!!
At least not in php5-200401150630 found in
http://snaps.php.net/php5-latest.tar.gz.
You still define HAVE_OCI8_COLLECTIONS in configure and use
PHP_OCI8_HAVE_COLLECTIONS in ext/oci8/oci8.c. Also have
HAVE_OCI8_COLLECTIONS in all other files and once in ext/oci8/oci8.c.
The one use of HAVE_OCI8_COLLECTIONS is conviniently placed in
PHP_MINFO_FUNCTION so phpinfo() says that collection support is
enabled. However all collection methods are wrapped inside
PHP_OCI8_HAVE_COLLECTIONS so they are actually not present.
Simple recursive search yields:
Find 'PHP_OCI8_HAVE_COLLECTIONS' in 'ext/oci8/oci8.c' :
ext/oci8/oci8.c/84: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/90: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/193: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/208: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/262: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/351: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/434: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/484: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/523: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/602: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/608: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/616: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/648: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/655: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/660: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/685: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/1051: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/1412: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/3604: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/3633: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/3751: #ifdef PHP_OCI8_HAVE_COLLECTIONS
ext/oci8/oci8.c/6221: #ifdef PHP_OCI8_HAVE_COLLECTIONS
Find 'HAVE_OCI8_COLLECTIONS' in 'configure' :
configure/57304: #define HAVE_OCI8_COLLECTIONS 1
ext/oci8/config.m4/146: AC_DEFINE(HAVE_OCI8_COLLECTIONS,1,[ ])
ext/oci8/oci8.c/806: #ifdef HAVE_OCI8_COLLECTIONS
main/php_config.h.in/1826: #undef HAVE_OCI8_COLLECTIONS
Also after having fixed defines by replacing all
PHP_OCI8_HAVE_COLLECTIONS with HAVE_OCI8_COLLECTIONS the original bug
remains!!!!!!!!
------------------------------------------------------------------------
[2004-01-15 01:26:41] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
The *COLLECTIONS* defines have been fixed.
------------------------------------------------------------------------
[2004-01-13 13:44:58] tony2001@php.net
Please, try PHP5 latest snapshots and check if it works with them.
------------------------------------------------------------------------
[2004-01-13 11:24:47] tomy at envox dot hr
Did some trial/error testing with earlier PHP versions and
found out that this problem does not exist with version 4.3.1, appears
in version 4.3.2 and exists ever since...
It is even possible to bypass it by copying 4.3.1 oci extension source
to latest CVS snapshot and then the problem does not exist anymore.
Also it seems, although I cannot confirm that with 100% certainity,
that it only exists if 9.2 client is used by php. It seems that 8.0
client is not affected.
Hope this helps.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/26892
--
Edit this bug report at http://bugs.php.net/?id=26892&edit=1