andrey                                   Thu, 12 Aug 2010 12:02:02 +0000

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

Log:
Switch from using PHP_MAJOR_VERSION to separate define for
unicode. Unicode is no more, but these are "bookmarks" where
to change mysqlnd, if Unicode becomes trendy again.

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_priv.h
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps_codec.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_statistics.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_priv.h
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_ps.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_ps_codec.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_statistics.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c
    U   php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -481,7 +481,7 @@
 	if (options->charset_name && (charset = mysqlnd_find_charset_name(options->charset_name))) {
 		auth_packet->charset_no	= charset->nr;
 	} else {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		auth_packet->charset_no	= 200;/* utf8 - swedish collation, check mysqlnd_charset.c */
 #else
 		auth_packet->charset_no	= greet_packet->charset_no;
@@ -799,7 +799,7 @@

 		mysqlnd_local_infile_default(conn);

-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		{
 			unsigned int as_unicode = 1;
 			conn->m->set_client_option(conn, MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE, (char *)&as_unicode TSRMLS_CC);
@@ -2052,7 +2052,7 @@
 		case MYSQLND_OPT_NET_READ_BUFFER_SIZE:
 			ret = conn->net->m.set_client_option(conn->net, option, value TSRMLS_CC);
 			break;
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		case MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE:
 			conn->options.numeric_and_datetime_as_unicode = *(unsigned int*) value;
 			break;

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -1249,7 +1249,7 @@

 /* Follows code borrowed from zend_builtin_functions.c because the functions there are static */

-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 /* {{{ gettraceasstring() macros */
 #define TRACE_APPEND_CHR(chr)                                            \
 	*str = (char*)erealloc(*str, *len + 1 + 1);                          \

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_enum_n_def.h	2010-08-12 12:02:02 UTC (rev 302142)
@@ -152,7 +152,7 @@
 	MYSQL_REPORT_DATA_TRUNCATION,
 	MYSQL_OPT_RECONNECT,
 	MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE = 200,
 #endif
 #ifdef MYSQLND_STRING_TO_INT_CONVERSION

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_priv.h
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_priv.h	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_priv.h	2010-08-12 12:02:02 UTC (rev 302142)
@@ -33,6 +33,12 @@
 #define Z_DELREF_PP(ppz)			Z_DELREF_P(*(ppz))
 #endif

+#if PHP_MAJOR_VERSION >= 6
+#define MYSQLND_UNICODE 1
+#else
+#define MYSQLND_UNICODE 0
+#endif
+
 #ifdef ZTS
 #include "TSRM.h"
 #endif
@@ -45,18 +51,18 @@
 #define MYSQLND_CLASS_METHODS_START(class)	struct st_##class##_methods MYSQLND_CLASS_METHOD_TABLE_NAME(class) = {
 #define MYSQLND_CLASS_METHODS_END			}

-#if PHP_MAJOR_VERSION < 6
+#if MYSQLND_UNICODE
 #define mysqlnd_array_init(arg, field_count) \
 { \
 	ALLOC_HASHTABLE_REL(Z_ARRVAL_P(arg));\
-	zend_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0); \
+	zend_u_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0, 0);\
 	Z_TYPE_P(arg) = IS_ARRAY;\
 }
 #else
 #define mysqlnd_array_init(arg, field_count) \
 { \
 	ALLOC_HASHTABLE_REL(Z_ARRVAL_P(arg));\
-	zend_u_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0, 0);\
+	zend_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0); \
 	Z_TYPE_P(arg) = IS_ARRAY;\
 }
 #endif

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -869,7 +869,7 @@
 					if (IS_NULL != (Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(data)) ) {
 						if (
 							(Z_TYPE_P(data) == IS_STRING
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 							|| Z_TYPE_P(data) == IS_UNICODE
 #endif
 							)
@@ -1059,7 +1059,7 @@
 								Z_TYPE_P(data), Z_REFCOUNT_P(stmt->result_bind[i].zv));
 					if (IS_NULL != (Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(data))) {
 						if ((Z_TYPE_P(data) == IS_STRING
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 							|| Z_TYPE_P(data) == IS_UNICODE
 #endif
 							)

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps_codec.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps_codec.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_ps_codec.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -117,7 +117,7 @@
 	}

 	if (tmp_len) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		if (as_unicode) {
 			DBG_INF("stringify");
 			ZVAL_UTF8_STRINGL(zv, tmp, tmp_len, ZSTR_DUPLICATE);
@@ -265,12 +265,12 @@
 	length = spprintf(&to, 0, "%s%02u:%02u:%02u", (t.neg ? "-" : ""), t.hour, t.minute, t.second);

 	DBG_INF_FMT("%s", to);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	if (!as_unicode) {
 #endif
 		ZVAL_STRINGL(zv, to, length, 1);
 		efree(to);  /* allocated by spprintf */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	} else {
 		ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 	}
@@ -316,12 +316,12 @@
 	length = spprintf(&to, 0, "%04u-%02u-%02u", t.year, t.month, t.day);

 	DBG_INF_FMT("%s", to);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	if (!as_unicode) {
 #endif
 		ZVAL_STRINGL(zv, to, length, 1);
 		efree(to); /* allocated by spprintf */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	} else {
 		ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 	}
@@ -375,12 +375,12 @@
 					  t.year, t.month, t.day, t.hour, t.minute, t.second);

 	DBG_INF_FMT("%s", to);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	if (!as_unicode) {
 #endif
 		ZVAL_STRINGL(zv, to, length, 1);
 		efree(to); /* allocated by spprintf */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	} else {
 		ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 	}
@@ -403,10 +403,7 @@
 	unsigned long length = php_mysqlnd_net_field_length(row);
 	DBG_ENTER("ps_fetch_string");
 	DBG_INF_FMT("len = %lu", length);
-#if PHP_MAJOR_VERSION < 6
-	DBG_INF("copying from the row buffer");
-	ZVAL_STRINGL(zv, (char *)*row, length, 1);
-#else
+#if MYSQLND_UNICODE
 	if (field->charsetnr == MYSQLND_BINARY_CHARSET_NR) {
 		DBG_INF("Binary charset");
 		ZVAL_STRINGL(zv, (char *)*row, length, 1);
@@ -414,6 +411,9 @@
 		DBG_INF_FMT("copying from the row buffer");
 		ZVAL_UTF8_STRINGL(zv, (char*)*row, length, ZSTR_DUPLICATE);
 	}
+#else
+	DBG_INF("copying from the row buffer");
+	ZVAL_STRINGL(zv, (char *)*row, length, 1);
 #endif

 	(*row) += length;
@@ -704,10 +704,10 @@
 				break;
 			case MYSQL_TYPE_VAR_STRING:
 				data_size += 8; /* max 8 bytes for size */
-#if PHP_MAJOR_VERSION < 6
+#if MYSQLND_UNICODE
+				if (Z_TYPE_P(the_var) != IS_STRING || Z_TYPE_P(the_var) == IS_UNICODE)
+#else
 				if (Z_TYPE_P(the_var) != IS_STRING)
-#elif PHP_MAJOR_VERSION >= 6
-				if (Z_TYPE_P(the_var) != IS_STRING || Z_TYPE_P(the_var) == IS_UNICODE)
 #endif
 				{
 					if (!copies || !copies[i]) {
@@ -717,7 +717,7 @@
 						}
 					}
 					the_var = copies[i];
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					if (Z_TYPE_P(the_var) == IS_UNICODE) {
 						zval_unicode_to_string_ex(the_var, UG(utf8_conv) TSRMLS_CC);
 					}

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -814,7 +814,7 @@
 					*/
 					Z_ADDREF_P(data);
 					if (zend_hash_key->is_numeric == FALSE) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 						zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
 												 zend_hash_key->ustr,
 												 zend_hash_key->ulen + 1,
@@ -1069,7 +1069,7 @@
 				*/
 				Z_ADDREF_P(data);
 				if (zend_hash_key->is_numeric == FALSE) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
 											 zend_hash_key->ustr,
 											 zend_hash_key->ulen + 1,

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -92,7 +92,7 @@
 /* }}} */


-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 /* {{{ mysqlnd_unicode_is_key_numeric */
 static zend_bool
 mysqlnd_unicode_is_key_numeric(UChar *key, size_t length, long *idx)
@@ -142,7 +142,7 @@
 {
 	unsigned int i = 0;
 	MYSQLND_PACKET_RES_FIELD * field_packet;
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	UChar *ustr;
 	int ulen;
 #endif
@@ -227,7 +227,7 @@

 		}

-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
 							   meta->fields[i].name,
 							   meta->fields[i].name_length TSRMLS_CC);
@@ -284,7 +284,7 @@

 	if (meta->zend_hash_keys) {
 		DBG_INF("Freeing zend_hash_keys");
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		if (UG(unicode)) {
 			for (i = 0; i < meta->field_count; i++) {
 				if (meta->zend_hash_keys[i].ustr.v) {
@@ -380,7 +380,7 @@
 			/* copy the trailing \0 too */
 			memcpy(new_fields[i].def, orig_fields[i].def, orig_fields[i].def_length + 1);
 		}
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		if (new_meta->zend_hash_keys[i].ustr.u) {
 			new_meta->zend_hash_keys[i].ustr.u =
 					eustrndup(new_meta->zend_hash_keys[i].ustr.u, new_meta->zend_hash_keys[i].ulen);

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_statistics.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_statistics.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_statistics.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -203,14 +203,14 @@

 	mysqlnd_array_init(return_value, stats->count);
 	for (i = 0; i < stats->count; i++) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		UChar *ustr, *tstr;
 		int ulen, tlen;
 #endif
 		char tmp[25];

 		sprintf((char *)&tmp, MYSQLND_LLU_SPEC, stats->values[i]);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, names[i].s, names[i].l + 1 TSRMLS_CC);
 		zend_string_to_unicode(UG(utf8_conv), &tstr, &tlen, tmp, strlen(tmp) + 1 TSRMLS_CC);
 		add_u_assoc_unicode_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen, tstr, 1);

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h	2010-08-12 12:02:02 UTC (rev 302142)
@@ -788,7 +788,7 @@
 {
 	zend_bool		is_numeric;
 	unsigned long	key;
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	zstr			ustr;
 	unsigned int	ulen;
 #endif

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -1332,7 +1332,7 @@
 			ZVAL_NULL(*current_field);
 			last_field_was_string = FALSE;
 		} else {
-#if PHP_MAJOR_VERSION >= 6 || defined(MYSQLND_STRING_TO_INT_CONVERSION)
+#if MYSQLND_UNICODE || defined(MYSQLND_STRING_TO_INT_CONVERSION)
 			struct st_mysqlnd_perm_bind perm_bind =
 					mysqlnd_ps_fetch_functions[fields_metadata[i].type];
 #endif
@@ -1437,7 +1437,7 @@
 				p -= len;
 				if (Z_TYPE_PP(current_field) == IS_LONG) {
 					bit_area += 1 + sprintf((char *)start, "%ld", Z_LVAL_PP(current_field));
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					if (as_unicode) {
 						ZVAL_UTF8_STRINGL(*current_field, start, bit_area - start - 1, 0);
 					} else
@@ -1450,7 +1450,7 @@
 					bit_area += Z_STRLEN_PP(current_field);
 					*bit_area++ = '\0';
 					zval_dtor(*current_field);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					if (as_unicode) {
 						ZVAL_UTF8_STRINGL(*current_field, start, bit_area - start - 1, 0);
 					} else
@@ -1464,7 +1464,7 @@
 				  the buffers are not referenced - everything is copied.
 				*/
 			} else
-#if PHP_MAJOR_VERSION < 6
+#if MYSQLND_UNICODE == 0
 			{
 				ZVAL_STRINGL(*current_field, (char *)p, len, 0);
 			}

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/php_mysqlnd.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -37,7 +37,7 @@


 /* {{{ mysqlnd_minfo_print_hash */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 PHPAPI void mysqlnd_minfo_print_hash(zval *values)
 {
 	zval **values_entry;

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -481,7 +481,7 @@
 	if (options->charset_name && (charset = mysqlnd_find_charset_name(options->charset_name))) {
 		auth_packet->charset_no	= charset->nr;
 	} else {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		auth_packet->charset_no	= 200;/* utf8 - swedish collation, check mysqlnd_charset.c */
 #else
 		auth_packet->charset_no	= greet_packet->charset_no;
@@ -799,7 +799,7 @@

 		mysqlnd_local_infile_default(conn);

-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		{
 			unsigned int as_unicode = 1;
 			conn->m->set_client_option(conn, MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE, (char *)&as_unicode TSRMLS_CC);
@@ -2052,7 +2052,7 @@
 		case MYSQLND_OPT_NET_READ_BUFFER_SIZE:
 			ret = conn->net->m.set_client_option(conn->net, option, value TSRMLS_CC);
 			break;
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		case MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE:
 			conn->options.numeric_and_datetime_as_unicode = *(unsigned int*) value;
 			break;

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -1249,7 +1249,7 @@

 /* Follows code borrowed from zend_builtin_functions.c because the functions there are static */

-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 /* {{{ gettraceasstring() macros */
 #define TRACE_APPEND_CHR(chr)                                            \
 	*str = (char*)erealloc(*str, *len + 1 + 1);                          \

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_enum_n_def.h	2010-08-12 12:02:02 UTC (rev 302142)
@@ -152,7 +152,7 @@
 	MYSQL_REPORT_DATA_TRUNCATION,
 	MYSQL_OPT_RECONNECT,
 	MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE = 200,
 #endif
 #ifdef MYSQLND_STRING_TO_INT_CONVERSION

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_priv.h
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_priv.h	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_priv.h	2010-08-12 12:02:02 UTC (rev 302142)
@@ -33,6 +33,12 @@
 #define Z_DELREF_PP(ppz)			Z_DELREF_P(*(ppz))
 #endif

+#if PHP_MAJOR_VERSION >= 6
+#define MYSQLND_UNICODE 1
+#else
+#define MYSQLND_UNICODE 0
+#endif
+
 #ifdef ZTS
 #include "TSRM.h"
 #endif
@@ -45,18 +51,18 @@
 #define MYSQLND_CLASS_METHODS_START(class)	struct st_##class##_methods MYSQLND_CLASS_METHOD_TABLE_NAME(class) = {
 #define MYSQLND_CLASS_METHODS_END			}

-#if PHP_MAJOR_VERSION < 6
+#if MYSQLND_UNICODE
 #define mysqlnd_array_init(arg, field_count) \
 { \
 	ALLOC_HASHTABLE_REL(Z_ARRVAL_P(arg));\
-	zend_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0); \
+	zend_u_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0, 0);\
 	Z_TYPE_P(arg) = IS_ARRAY;\
 }
 #else
 #define mysqlnd_array_init(arg, field_count) \
 { \
 	ALLOC_HASHTABLE_REL(Z_ARRVAL_P(arg));\
-	zend_u_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0, 0);\
+	zend_hash_init(Z_ARRVAL_P(arg), (field_count), NULL, ZVAL_PTR_DTOR, 0); \
 	Z_TYPE_P(arg) = IS_ARRAY;\
 }
 #endif

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_ps.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_ps.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_ps.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -869,7 +869,7 @@
 					if (IS_NULL != (Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(data)) ) {
 						if (
 							(Z_TYPE_P(data) == IS_STRING
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 							|| Z_TYPE_P(data) == IS_UNICODE
 #endif
 							)
@@ -1059,7 +1059,7 @@
 								Z_TYPE_P(data), Z_REFCOUNT_P(stmt->result_bind[i].zv));
 					if (IS_NULL != (Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(data))) {
 						if ((Z_TYPE_P(data) == IS_STRING
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 							|| Z_TYPE_P(data) == IS_UNICODE
 #endif
 							)

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_ps_codec.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_ps_codec.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_ps_codec.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -117,7 +117,7 @@
 	}

 	if (tmp_len) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		if (as_unicode) {
 			DBG_INF("stringify");
 			ZVAL_UTF8_STRINGL(zv, tmp, tmp_len, ZSTR_DUPLICATE);
@@ -265,12 +265,12 @@
 	length = spprintf(&to, 0, "%s%02u:%02u:%02u", (t.neg ? "-" : ""), t.hour, t.minute, t.second);

 	DBG_INF_FMT("%s", to);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	if (!as_unicode) {
 #endif
 		ZVAL_STRINGL(zv, to, length, 1);
 		efree(to);  /* allocated by spprintf */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	} else {
 		ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 	}
@@ -316,12 +316,12 @@
 	length = spprintf(&to, 0, "%04u-%02u-%02u", t.year, t.month, t.day);

 	DBG_INF_FMT("%s", to);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	if (!as_unicode) {
 #endif
 		ZVAL_STRINGL(zv, to, length, 1);
 		efree(to); /* allocated by spprintf */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	} else {
 		ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 	}
@@ -375,12 +375,12 @@
 					  t.year, t.month, t.day, t.hour, t.minute, t.second);

 	DBG_INF_FMT("%s", to);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	if (!as_unicode) {
 #endif
 		ZVAL_STRINGL(zv, to, length, 1);
 		efree(to); /* allocated by spprintf */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	} else {
 		ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 	}
@@ -403,10 +403,7 @@
 	unsigned long length = php_mysqlnd_net_field_length(row);
 	DBG_ENTER("ps_fetch_string");
 	DBG_INF_FMT("len = %lu", length);
-#if PHP_MAJOR_VERSION < 6
-	DBG_INF("copying from the row buffer");
-	ZVAL_STRINGL(zv, (char *)*row, length, 1);
-#else
+#if MYSQLND_UNICODE
 	if (field->charsetnr == MYSQLND_BINARY_CHARSET_NR) {
 		DBG_INF("Binary charset");
 		ZVAL_STRINGL(zv, (char *)*row, length, 1);
@@ -414,6 +411,9 @@
 		DBG_INF_FMT("copying from the row buffer");
 		ZVAL_UTF8_STRINGL(zv, (char*)*row, length, ZSTR_DUPLICATE);
 	}
+#else
+	DBG_INF("copying from the row buffer");
+	ZVAL_STRINGL(zv, (char *)*row, length, 1);
 #endif

 	(*row) += length;
@@ -704,10 +704,10 @@
 				break;
 			case MYSQL_TYPE_VAR_STRING:
 				data_size += 8; /* max 8 bytes for size */
-#if PHP_MAJOR_VERSION < 6
+#if MYSQLND_UNICODE
+				if (Z_TYPE_P(the_var) != IS_STRING || Z_TYPE_P(the_var) == IS_UNICODE)
+#else
 				if (Z_TYPE_P(the_var) != IS_STRING)
-#elif PHP_MAJOR_VERSION >= 6
-				if (Z_TYPE_P(the_var) != IS_STRING || Z_TYPE_P(the_var) == IS_UNICODE)
 #endif
 				{
 					if (!copies || !copies[i]) {
@@ -717,7 +717,7 @@
 						}
 					}
 					the_var = copies[i];
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					if (Z_TYPE_P(the_var) == IS_UNICODE) {
 						zval_unicode_to_string_ex(the_var, UG(utf8_conv) TSRMLS_CC);
 					}

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -814,7 +814,7 @@
 					*/
 					Z_ADDREF_P(data);
 					if (zend_hash_key->is_numeric == FALSE) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 						zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
 												 zend_hash_key->ustr,
 												 zend_hash_key->ulen + 1,
@@ -1069,7 +1069,7 @@
 				*/
 				Z_ADDREF_P(data);
 				if (zend_hash_key->is_numeric == FALSE) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
 											 zend_hash_key->ustr,
 											 zend_hash_key->ulen + 1,

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -92,7 +92,7 @@
 /* }}} */


-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 /* {{{ mysqlnd_unicode_is_key_numeric */
 static zend_bool
 mysqlnd_unicode_is_key_numeric(UChar *key, size_t length, long *idx)
@@ -142,7 +142,7 @@
 {
 	unsigned int i = 0;
 	MYSQLND_PACKET_RES_FIELD * field_packet;
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	UChar *ustr;
 	int ulen;
 #endif
@@ -227,7 +227,7 @@

 		}

-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
 							   meta->fields[i].name,
 							   meta->fields[i].name_length TSRMLS_CC);
@@ -284,7 +284,7 @@

 	if (meta->zend_hash_keys) {
 		DBG_INF("Freeing zend_hash_keys");
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		if (UG(unicode)) {
 			for (i = 0; i < meta->field_count; i++) {
 				if (meta->zend_hash_keys[i].ustr.v) {
@@ -380,7 +380,7 @@
 			/* copy the trailing \0 too */
 			memcpy(new_fields[i].def, orig_fields[i].def, orig_fields[i].def_length + 1);
 		}
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		if (new_meta->zend_hash_keys[i].ustr.u) {
 			new_meta->zend_hash_keys[i].ustr.u =
 					eustrndup(new_meta->zend_hash_keys[i].ustr.u, new_meta->zend_hash_keys[i].ulen);

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_statistics.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_statistics.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_statistics.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -203,14 +203,14 @@

 	mysqlnd_array_init(return_value, stats->count);
 	for (i = 0; i < stats->count; i++) {
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		UChar *ustr, *tstr;
 		int ulen, tlen;
 #endif
 		char tmp[25];

 		sprintf((char *)&tmp, MYSQLND_LLU_SPEC, stats->values[i]);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, names[i].s, names[i].l + 1 TSRMLS_CC);
 		zend_string_to_unicode(UG(utf8_conv), &tstr, &tlen, tmp, strlen(tmp) + 1 TSRMLS_CC);
 		add_u_assoc_unicode_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen, tstr, 1);

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h	2010-08-12 12:02:02 UTC (rev 302142)
@@ -788,7 +788,7 @@
 {
 	zend_bool		is_numeric;
 	unsigned long	key;
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 	zstr			ustr;
 	unsigned int	ulen;
 #endif

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -1332,7 +1332,7 @@
 			ZVAL_NULL(*current_field);
 			last_field_was_string = FALSE;
 		} else {
-#if PHP_MAJOR_VERSION >= 6 || defined(MYSQLND_STRING_TO_INT_CONVERSION)
+#if MYSQLND_UNICODE || defined(MYSQLND_STRING_TO_INT_CONVERSION)
 			struct st_mysqlnd_perm_bind perm_bind =
 					mysqlnd_ps_fetch_functions[fields_metadata[i].type];
 #endif
@@ -1437,7 +1437,7 @@
 				p -= len;
 				if (Z_TYPE_PP(current_field) == IS_LONG) {
 					bit_area += 1 + sprintf((char *)start, "%ld", Z_LVAL_PP(current_field));
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					if (as_unicode) {
 						ZVAL_UTF8_STRINGL(*current_field, start, bit_area - start - 1, 0);
 					} else
@@ -1450,7 +1450,7 @@
 					bit_area += Z_STRLEN_PP(current_field);
 					*bit_area++ = '\0';
 					zval_dtor(*current_field);
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 					if (as_unicode) {
 						ZVAL_UTF8_STRINGL(*current_field, start, bit_area - start - 1, 0);
 					} else
@@ -1464,7 +1464,7 @@
 				  the buffers are not referenced - everything is copied.
 				*/
 			} else
-#if PHP_MAJOR_VERSION < 6
+#if MYSQLND_UNICODE == 0
 			{
 				ZVAL_STRINGL(*current_field, (char *)p, len, 0);
 			}

Modified: php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c	2010-08-12 11:38:08 UTC (rev 302141)
+++ php/php-src/trunk/ext/mysqlnd/php_mysqlnd.c	2010-08-12 12:02:02 UTC (rev 302142)
@@ -37,7 +37,7 @@


 /* {{{ mysqlnd_minfo_print_hash */
-#if PHP_MAJOR_VERSION >= 6
+#if MYSQLND_UNICODE
 PHPAPI void mysqlnd_minfo_print_hash(zval *values)
 {
 	zval **values_entry;
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to