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