NEWS?

--Jani

On 10/01/2009 08:51 AM, Christopher Jones wrote:
sixd                                     Thu, 01 Oct 2009 05:51:11 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=289039

Log:
PECL Bug #16842 (oci_error return false when NO_DATA_FOUND is raised)

Bug: http://pecl.php.net/bugs/16842 (unknown)

Changed paths:
     U   php/php-src/branches/PHP_5_3/ext/oci8/oci8.c
     A   php/php-src/branches/PHP_5_3/ext/oci8/tests/pecl_bug16842.phpt
     U   php/php-src/trunk/ext/oci8/oci8.c
     A   php/php-src/trunk/ext/oci8/tests/pecl_bug16842.phpt

Modified: php/php-src/branches/PHP_5_3/ext/oci8/oci8.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/oci8/oci8.c        2009-10-01 05:08:47 UTC 
(rev 289038)
+++ php/php-src/branches/PHP_5_3/ext/oci8/oci8.c        2009-10-01 05:51:11 UTC 
(rev 289039)
@@ -1529,6 +1529,12 @@
                        break;
                case OCI_NO_DATA:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"OCI_NO_DATA");
+                       errcode = php_oci_fetch_errmsg(err_p,&errbuf TSRMLS_CC);
+                       if (errbuf) {
+                               efree(errbuf);
+                       } else {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"OCI_NO_DATA: failed to fetch error message");
+                       }
                        break;
                case OCI_ERROR:
                        errcode = php_oci_fetch_errmsg(err_p,&errbuf TSRMLS_CC);

Added: php/php-src/branches/PHP_5_3/ext/oci8/tests/pecl_bug16842.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/oci8/tests/pecl_bug16842.phpt              
                (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/oci8/tests/pecl_bug16842.phpt      
2009-10-01 05:51:11 UTC (rev 289039)
@@ -0,0 +1,69 @@
+--TEST--
+PECL Bug #16842 (NO_DATA_FOUND exception is a warning)
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
+--INI--
+error_reporting = E_WARNING
+--FILE--
+<?php
+
+require(dirname(__FILE__).'/connect.inc');
+
+// Run Test
+
+echo "Test 1\n";
+
+echo "Raises NO_DATA_FOUND\n";
+$s = oci_parse($c, 'begin raise NO_DATA_FOUND; end;');
+$e = oci_execute($s);
+var_dump($e);
+var_dump(oci_error($s));
+
+echo "Test 2\n";
+
+echo "Raises ZERO_DIVIDE\n";
+$s = oci_parse($c, 'begin raise ZERO_DIVIDE; end;');
+$e = oci_execute($s);
+var_dump($e);
+var_dump(oci_error($s));
+
+oci_close($c);
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+Test 1
+Raises NO_DATA_FOUND
+
+Warning: oci_execute(): OCI_NO_DATA in %s on line 11
+bool(false)
+array(4) {
+  [%u|b%"code"]=>
+  int(1403)
+  [%u|b%"message"]=>
+  %unicode|string%(45) "ORA-01403: %s
+ORA-06512: at line 1"
+  [%u|b%"offset"]=>
+  int(0)
+  [%u|b%"sqltext"]=>
+  %unicode|string%(31) "begin raise NO_DATA_FOUND; end;"
+}
+Test 2
+Raises ZERO_DIVIDE
+
+Warning: oci_execute(): ORA-01476: %s
+ORA-06512: at line 1 in %s on line 19
+bool(false)
+array(4) {
+  [%u|b%"code"]=>
+  int(1476)
+  [%u|b%"message"]=>
+  %unicode|string%(56) "ORA-01476: %s
+ORA-06512: at line 1"
+  [%u|b%"offset"]=>
+  int(0)
+  [%u|b%"sqltext"]=>
+  %unicode|string%(29) "begin raise ZERO_DIVIDE; end;"
+}
+===DONE===


Property changes on: 
php/php-src/branches/PHP_5_3/ext/oci8/tests/pecl_bug16842.phpt
___________________________________________________________________
Added: svn:keywords
    + Id Rev Revision
Added: svn:eol-style
    + native

Modified: php/php-src/trunk/ext/oci8/oci8.c
===================================================================
--- php/php-src/trunk/ext/oci8/oci8.c   2009-10-01 05:08:47 UTC (rev 289038)
+++ php/php-src/trunk/ext/oci8/oci8.c   2009-10-01 05:51:11 UTC (rev 289039)
@@ -1371,6 +1371,12 @@
                        break;
                case OCI_NO_DATA:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"OCI_NO_DATA");
+                       errcode = php_oci_fetch_errmsg(err_p,&errbuf TSRMLS_CC);
+                       if (errbuf) {
+                               efree(errbuf);
+                       } else {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"OCI_NO_DATA: failed to fetch error message");
+                       }
                        break;
                case OCI_ERROR:
                        errcode = php_oci_fetch_errmsg(err_p,&errbuf TSRMLS_CC);

Added: php/php-src/trunk/ext/oci8/tests/pecl_bug16842.phpt
===================================================================
--- php/php-src/trunk/ext/oci8/tests/pecl_bug16842.phpt                         
(rev 0)
+++ php/php-src/trunk/ext/oci8/tests/pecl_bug16842.phpt 2009-10-01 05:51:11 UTC 
(rev 289039)
@@ -0,0 +1,69 @@
+--TEST--
+PECL Bug #16842 (NO_DATA_FOUND exception is a warning)
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
+--INI--
+error_reporting = E_WARNING
+--FILE--
+<?php
+
+require(dirname(__FILE__).'/connect.inc');
+
+// Run Test
+
+echo "Test 1\n";
+
+echo "Raises NO_DATA_FOUND\n";
+$s = oci_parse($c, 'begin raise NO_DATA_FOUND; end;');
+$e = oci_execute($s);
+var_dump($e);
+var_dump(oci_error($s));
+
+echo "Test 2\n";
+
+echo "Raises ZERO_DIVIDE\n";
+$s = oci_parse($c, 'begin raise ZERO_DIVIDE; end;');
+$e = oci_execute($s);
+var_dump($e);
+var_dump(oci_error($s));
+
+oci_close($c);
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+Test 1
+Raises NO_DATA_FOUND
+
+Warning: oci_execute(): OCI_NO_DATA in %s on line 11
+bool(false)
+array(4) {
+  [%u|b%"code"]=>
+  int(1403)
+  [%u|b%"message"]=>
+  %unicode|string%(45) "ORA-01403: %s
+ORA-06512: at line 1"
+  [%u|b%"offset"]=>
+  int(0)
+  [%u|b%"sqltext"]=>
+  %unicode|string%(31) "begin raise NO_DATA_FOUND; end;"
+}
+Test 2
+Raises ZERO_DIVIDE
+
+Warning: oci_execute(): ORA-01476: %s
+ORA-06512: at line 1 in %s on line 19
+bool(false)
+array(4) {
+  [%u|b%"code"]=>
+  int(1476)
+  [%u|b%"message"]=>
+  %unicode|string%(56) "ORA-01476: %s
+ORA-06512: at line 1"
+  [%u|b%"offset"]=>
+  int(0)
+  [%u|b%"sqltext"]=>
+  %unicode|string%(29) "begin raise ZERO_DIVIDE; end;"
+}
+===DONE===


Property changes on: php/php-src/trunk/ext/oci8/tests/pecl_bug16842.phpt
___________________________________________________________________
Added: svn:keywords
    + Id Rev Revision
Added: svn:eol-style
    + native




--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to