tony2001                Tue Jan 31 18:36:59 2006 UTC

  Modified files:              
    /php-src/ext/oci8   oci8_interface.c oci8_statement.c php_oci8_int.h 
  Log:
  fix #36235 (ocicolumnname delivers empty results before a succesfull ocifetch)
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/oci8/oci8_interface.c?r1=1.10&r2=1.11&diff_format=u
Index: php-src/ext/oci8/oci8_interface.c
diff -u php-src/ext/oci8/oci8_interface.c:1.10 
php-src/ext/oci8/oci8_interface.c:1.11
--- php-src/ext/oci8/oci8_interface.c:1.10      Thu Jan  5 13:40:10 2006
+++ php-src/ext/oci8/oci8_interface.c   Tue Jan 31 18:36:59 2006
@@ -25,7 +25,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: oci8_interface.c,v 1.10 2006/01/05 13:40:10 tony2001 Exp $ */
+/* $Id: oci8_interface.c,v 1.11 2006/01/31 18:36:59 tony2001 Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1102,7 +1102,7 @@
 {
        php_oci_out_column *column;
 
-       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
                RETURN_STRINGL(column->name, column->name_len, 1);
        }
        RETURN_FALSE;
@@ -1115,7 +1115,7 @@
 {
        php_oci_out_column *column;
 
-       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
                /* Handle data type of LONG */
                if (column->data_type == SQLT_LNG){
                        RETURN_LONG(column->storage_size4);
@@ -1132,7 +1132,7 @@
 {
        php_oci_out_column *column;
 
-       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
                RETURN_LONG(column->scale);
        }
        RETURN_FALSE;
@@ -1145,7 +1145,7 @@
 {
        php_oci_out_column *column;
 
-       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
                RETURN_LONG(column->precision);
        }
        RETURN_FALSE;
@@ -1158,7 +1158,7 @@
 {
        php_oci_out_column *column;
 
-       column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+       column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
 
        if (!column) {
                RETURN_FALSE;
@@ -1223,7 +1223,7 @@
 {
        php_oci_out_column *column;
 
-       column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU); 
+       column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); 
        if (column) {
                RETURN_LONG(column->data_type);
        }
@@ -1237,7 +1237,7 @@
 {
        php_oci_out_column *column;
 
-       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+       if ( ( column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
                if (column->indicator == -1) {
                        RETURN_TRUE;
                }
@@ -1734,7 +1734,7 @@
 {
        php_oci_out_column *column;
        
-       column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+       column = 
php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
        if(column) {
                php_oci_column_to_zval(column, return_value, 0 TSRMLS_CC);
        }
http://cvs.php.net/viewcvs.cgi/php-src/ext/oci8/oci8_statement.c?r1=1.14&r2=1.15&diff_format=u
Index: php-src/ext/oci8/oci8_statement.c
diff -u php-src/ext/oci8/oci8_statement.c:1.14 
php-src/ext/oci8/oci8_statement.c:1.15
--- php-src/ext/oci8/oci8_statement.c:1.14      Fri Jan 20 11:01:36 2006
+++ php-src/ext/oci8/oci8_statement.c   Tue Jan 31 18:36:59 2006
@@ -25,7 +25,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: oci8_statement.c,v 1.14 2006/01/20 11:01:36 tony2001 Exp $ */
+/* $Id: oci8_statement.c,v 1.15 2006/01/31 18:36:59 tony2001 Exp $ */
 
 
 #ifdef HAVE_CONFIG_H
@@ -1004,7 +1004,7 @@
 
 /* {{{ php_oci_statement_get_column_helper() 
  Helper function to get column by name and index */
-php_oci_out_column 
*php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS)
+php_oci_out_column 
*php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int 
need_data)
 {
        zval *z_statement, *column_index;
        php_oci_statement *statement;
@@ -1020,7 +1020,7 @@
                return NULL;
        }
 
-       if (!statement->has_data) {
+       if (need_data && !statement->has_data) {
                return NULL;
        }
        
http://cvs.php.net/viewcvs.cgi/php-src/ext/oci8/php_oci8_int.h?r1=1.13&r2=1.14&diff_format=u
Index: php-src/ext/oci8/php_oci8_int.h
diff -u php-src/ext/oci8/php_oci8_int.h:1.13 
php-src/ext/oci8/php_oci8_int.h:1.14
--- php-src/ext/oci8/php_oci8_int.h:1.13        Thu Jan  5 13:40:10 2006
+++ php-src/ext/oci8/php_oci8_int.h     Tue Jan 31 18:36:59 2006
@@ -25,7 +25,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_oci8_int.h,v 1.13 2006/01/05 13:40:10 tony2001 Exp $ */
+/* $Id: php_oci8_int.h,v 1.14 2006/01/31 18:36:59 tony2001 Exp $ */
 
 #if HAVE_OCI8
 # ifndef PHP_OCI8_INT_H
@@ -358,7 +358,7 @@
 int php_oci_bind_by_name(php_oci_statement *, char *, int, zval*, long, long 
TSRMLS_DC);
 sb4 php_oci_bind_in_callback(dvoid *, OCIBind *, ub4, ub4, dvoid **, ub4 *, 
ub1 *, dvoid **);
 sb4 php_oci_bind_out_callback(dvoid *, OCIBind *, ub4, ub4, dvoid **, ub4 **, 
ub1 *, dvoid **, ub2 **);
-php_oci_out_column 
*php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS);
+php_oci_out_column 
*php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int 
need_data);
 
 int php_oci_statement_get_type(php_oci_statement *, ub2 * TSRMLS_DC);
 int php_oci_statement_get_numrows(php_oci_statement *, ub4 * TSRMLS_DC);

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

Reply via email to