List:Commits« Previous MessageNext Message »
From:ahristov Date:June 28 2007 1:53pm
Subject:PHP mysqlnd svn commit: r560 - in trunk: mysqlnd php4/ext/mysql php5/ext/mysql php6/ext/mysql php6/ext/mysqli
View as plain text  
Author: ahristov
Date: 2007-06-28 13:53:41 +0200 (Thu, 28 Jun 2007)
New Revision: 560

Modified:
   trunk/mysqlnd/mysqlnd.h
   trunk/mysqlnd/mysqlnd_enum_n_def.h
   trunk/mysqlnd/mysqlnd_result.c
   trunk/php4/ext/mysql/php_mysql.c
   trunk/php5/ext/mysql/php_mysql.c
   trunk/php6/ext/mysql/php_mysql.c
   trunk/php6/ext/mysqli/mysqli.c
Log:
There are differences in the return values of ext/mysql
and ext/mysqli, thus mysqlnd should know which API uses it.


Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/mysqlnd/mysqlnd.h	2007-06-28 11:53:41 UTC (rev 560)
@@ -372,7 +372,7 @@
 
 	MYSQLND_RES *		(*use_result)(MYSQLND_RES * const result, zend_bool ps_protocol
TSRMLS_DC);
 	MYSQLND_RES *		(*store_result)(MYSQLND_RES * result, MYSQLND * const conn, zend_bool ps
TSRMLS_DC);
-	void 				(*fetch_into)(MYSQLND_RES *result, unsigned int flags, zval *return_value
TSRMLS_DC ZEND_FILE_LINE_DC);
+	void 				(*fetch_into)(MYSQLND_RES *result, unsigned int flags, zval *return_value,
enum_mysqlnd_extension ext TSRMLS_DC ZEND_FILE_LINE_DC);
 	void 				(*fetch_all)(MYSQLND_RES *result, unsigned int flags, zval *return_value
TSRMLS_DC ZEND_FILE_LINE_DC);
 	mynd_ulonglong		(*num_rows)(const MYSQLND_RES * const result);
 	unsigned int		(*num_fields)(const MYSQLND_RES * const result);
@@ -662,7 +662,7 @@
 
 
 /* Query */
-#define mysqlnd_fetch_into(result, flags,
return_value)	(result)->m.fetch_into((result), (flags), (return_value) TSRMLS_CC
ZEND_FILE_LINE_CC)
+#define mysqlnd_fetch_into(result, flags, ret_val,
ext)	(result)->m.fetch_into((result), (flags), (ret_val), (ext) TSRMLS_CC
ZEND_FILE_LINE_CC)
 #define mysqlnd_fetch_all(result, flags, return_value)	(result)->m.fetch_all((result),
(flags), (return_value) TSRMLS_CC ZEND_FILE_LINE_CC)
 #define mysqlnd_get_connection_stats(conn,
values)		(conn)->m->get_statistics((conn),  (values) TSRMLS_CC ZEND_FILE_LINE_CC)
 #define mysqlnd_get_client_stats(values)				_mysqlnd_get_client_stats((values) TSRMLS_CC
ZEND_FILE_LINE_CC)

Modified: trunk/mysqlnd/mysqlnd_enum_n_def.h
===================================================================
--- trunk/mysqlnd/mysqlnd_enum_n_def.h	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/mysqlnd/mysqlnd_enum_n_def.h	2007-06-28 11:53:41 UTC (rev 560)
@@ -56,6 +56,12 @@
 #define CLIENT_MULTI_STATEMENTS		(1UL << 16) /* Enable/disable multi-stmt support
*/
 #define CLIENT_MULTI_RESULTS		(1UL << 17) /* Enable/disable multi-results */
 
+typedef enum mysqlnd_extension
+{
+	MYSQLND_MYSQL = 0,
+	MYSQLND_MYSQLI,
+} enum_mysqlnd_extension;
+
 enum
 {
 	MYSQLND_FETCH_ASSOC = 1,

Modified: trunk/mysqlnd/mysqlnd_result.c
===================================================================
--- trunk/mysqlnd/mysqlnd_result.c	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/mysqlnd/mysqlnd_result.c	2007-06-28 11:53:41 UTC (rev 560)
@@ -936,7 +936,8 @@
 /* {{{ mysqlnd_res::fetch_into */
 static void
 MYSQLND_METHOD(mysqlnd_res, fetch_into)(MYSQLND_RES *result, unsigned int flags,
-										zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC)
+										zval *return_value,
+										enum_mysqlnd_extension extension TSRMLS_DC ZEND_FILE_LINE_DC)
 {
 	zend_bool fetched_anything;
 
@@ -953,7 +954,15 @@
 		RETURN_FALSE;
 	} else if (fetched_anything == FALSE) {
 		zval_dtor(return_value);
-		RETURN_NULL();
+		switch (extension) {
+			case MYSQLND_MYSQLI:
+				RETURN_NULL();
+				break;
+			case MYSQLND_MYSQL:
+				RETURN_FALSE;
+				break;
+			default:exit(0);
+		}
 	}
 	/*
 	  return_value is IS_NULL for no more data and an array for data. Thus it's ok
@@ -985,7 +994,7 @@
 		   (result->data->data_cursor - result->data->data) <
result->data->row_count)
 	{
 		MAKE_STD_ZVAL(row);
-		mysqlnd_fetch_into(result, flags, row);
+		mysqlnd_fetch_into(result, flags, row, MYSQLND_MYSQLI);
 		add_index_zval(return_value, i++, row);
 	}
 }

Modified: trunk/php4/ext/mysql/php_mysql.c
===================================================================
--- trunk/php4/ext/mysql/php_mysql.c	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php4/ext/mysql/php_mysql.c	2007-06-28 11:53:41 UTC (rev 560)
@@ -2090,7 +2090,7 @@
 		}
 	}
 #else
-	mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value);
+	mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */
@@ -2108,7 +2108,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value); 
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value, MYSQLND_MYSQL); 
 #else
 	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1);
 #endif
@@ -2145,7 +2145,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, mode, return_value);
+	mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */
@@ -2166,7 +2166,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */

Modified: trunk/php5/ext/mysql/php_mysql.c
===================================================================
--- trunk/php5/ext/mysql/php_mysql.c	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php5/ext/mysql/php_mysql.c	2007-06-28 11:53:41 UTC (rev 560)
@@ -2041,7 +2041,7 @@
 		}
 	}
 #else
-	mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value);
+	mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
 #endif
 
 #ifdef ZEND_ENGINE_2
@@ -2126,7 +2126,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value); 
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value, MYSQLND_MYSQL); 
 #else
 	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1, 0);
 #endif
@@ -2163,7 +2163,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, mode, return_value);
+	mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */
@@ -2184,7 +2184,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */

Modified: trunk/php6/ext/mysql/php_mysql.c
===================================================================
--- trunk/php6/ext/mysql/php_mysql.c	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php6/ext/mysql/php_mysql.c	2007-06-28 11:53:41 UTC (rev 560)
@@ -2016,7 +2016,7 @@
 		}
 	}
 #else
-	mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value);
+	mysqlnd_fetch_into(mysql_result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
 #endif
 
 	if (into_object) {
@@ -2098,7 +2098,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value); 
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value, MYSQLND_MYSQL); 
 #else
 	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1, 0);
 #endif
@@ -2135,7 +2135,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, mode, return_value);
+	mysqlnd_fetch_into(result, mode, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */
@@ -2156,7 +2156,7 @@
 	}
 	ZEND_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, -1, "MySQL result",
le_result);
 
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQL);
 #endif
 }
 /* }}} */

Modified: trunk/php6/ext/mysqli/mysqli.c
===================================================================
--- trunk/php6/ext/mysqli/mysqli.c	2007-06-28 11:32:50 UTC (rev 559)
+++ trunk/php6/ext/mysqli/mysqli.c	2007-06-28 11:53:41 UTC (rev 560)
@@ -1073,8 +1073,7 @@
 		}
 	}
 #else
-	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value);
-	
+	mysqlnd_fetch_into(result, MYSQLND_FETCH_ASSOC, return_value, MYSQLND_MYSQLI);
 #endif
 
 	if (into_object && Z_TYPE_P(return_value) != IS_NULL) {

Thread
PHP mysqlnd svn commit: r560 - in trunk: mysqlnd php4/ext/mysql php5/ext/mysql php6/ext/mysql php6/ext/mysqliahristov28 Jun