pajoye                                   Fri, 09 Oct 2009 14:44:43 +0000

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

Log:
- Merge: Pecl #16842

Bug: http://pecl.php.net/bugs/16842 (unknown) 
      
Changed paths:
    U   php/php-src/branches/PHP_5_3_1/ext/oci8/oci8.c
    A   php/php-src/branches/PHP_5_3_1/ext/oci8/tests/pecl_bug16842.phpt

Modified: php/php-src/branches/PHP_5_3_1/ext/oci8/oci8.c
===================================================================
--- php/php-src/branches/PHP_5_3_1/ext/oci8/oci8.c      2009-10-09 14:37:45 UTC 
(rev 289422)
+++ php/php-src/branches/PHP_5_3_1/ext/oci8/oci8.c      2009-10-09 14:44:43 UTC 
(rev 289423)
@@ -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_1/ext/oci8/tests/pecl_bug16842.phpt
===================================================================
--- php/php-src/branches/PHP_5_3_1/ext/oci8/tests/pecl_bug16842.phpt            
                (rev 0)
+++ php/php-src/branches/PHP_5_3_1/ext/oci8/tests/pecl_bug16842.phpt    
2009-10-09 14:44:43 UTC (rev 289423)
@@ -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===

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

Reply via email to