List:Commits« Previous MessageNext Message »
From:ahristov Date:March 16 2007 3:02pm
Subject:PHP mysqlnd svn commit: r178 - trunk/ext/mysqli/mysqlnd
View as plain text  
Author: ahristov
Date: 2007-03-16 16:02:21 +0100 (Fri, 16 Mar 2007)
New Revision: 178

Modified:
   trunk/ext/mysqli/mysqlnd/mysqlnd.h
   trunk/ext/mysqli/mysqlnd/mysqlnd_ps_codec.c
Log:
BLOB (binary charset), should not be converted from utf8 to utf16
but returned as is - as string.


Modified: trunk/ext/mysqli/mysqlnd/mysqlnd.h
===================================================================
--- trunk/ext/mysqli/mysqlnd/mysqlnd.h	2007-03-16 14:44:50 UTC (rev 177)
+++ trunk/ext/mysqli/mysqlnd/mysqlnd.h	2007-03-16 15:02:21 UTC (rev 178)
@@ -249,6 +249,9 @@
 #define IS_NUM(t)		((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) ==
FIELD_TYPE_NEWDECIMAL)
 
 
+/* see mysqlnd_charset.c for more information */
+#define MYSQLND_BINARY_CHARSET_NR	63
+
 /*
           /-----> CONN_CLOSE  <---------------\
          |           ^                         \

Modified: trunk/ext/mysqli/mysqlnd/mysqlnd_ps_codec.c
===================================================================
--- trunk/ext/mysqli/mysqlnd/mysqlnd_ps_codec.c	2007-03-16 14:44:50 UTC (rev 177)
+++ trunk/ext/mysqli/mysqlnd/mysqlnd_ps_codec.c	2007-03-16 15:02:21 UTC (rev 178)
@@ -66,14 +66,17 @@
 
 
 
+/* {{{ ps_fetch_null */
 static
 void ps_fetch_null(zval *zv, const MYSQLND_FIELD * const field,
 				   uint pack_len, zend_uchar **row TSRMLS_DC)
 {
 	ZVAL_NULL(zv);
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_int8 */
 static
 void ps_fetch_int8(zval *zv, const MYSQLND_FIELD * const field,
 				   uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -86,8 +89,10 @@
 	}
 	(*row)++;
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_int16 */
 static
 void ps_fetch_int16(zval *zv, const MYSQLND_FIELD * const field,
 					uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -99,10 +104,13 @@
 	}
 	(*row)+= 2;
 }
+/* }}} */
 
 
-static void ps_fetch_int32(zval *zv, const MYSQLND_FIELD * const field,
-						  uint pack_len, zend_uchar **row TSRMLS_DC)
+/* {{{ ps_fetch_int32 */
+static
+void ps_fetch_int32(zval *zv, const MYSQLND_FIELD * const field,
+					uint pack_len, zend_uchar **row TSRMLS_DC)
 {
 	if (field->flags & UNSIGNED_FLAG) {
 		my_uint32 uval;
@@ -133,8 +141,10 @@
 	}
 	(*row)+= 4;
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_int64 */
 static
 void ps_fetch_int64(zval *zv, const MYSQLND_FIELD * const field,
 					uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -170,8 +180,10 @@
 	}
   	(*row)+= 8;
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_float */
 static
 void ps_fetch_float(zval *zv, const MYSQLND_FIELD * const field,
 					uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -181,8 +193,10 @@
 	ZVAL_DOUBLE(zv, value);
   	(*row)+= 4;
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_double */
 static
 void ps_fetch_double(zval *zv, const MYSQLND_FIELD * const field,
 					 uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -192,9 +206,10 @@
 	ZVAL_DOUBLE(zv, value);
 	(*row)+= 8;
 }
+/* }}} */
 
 
-
+/* {{{ ps_fetch_time */
 static
 void ps_fetch_time(zval *zv, const MYSQLND_FIELD * const field,
 					uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -241,8 +256,10 @@
 	ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 #endif
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_date */
 static
 void ps_fetch_date(zval *zv, const MYSQLND_FIELD * const field,
 					uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -282,8 +299,10 @@
 	ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 #endif
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_datetime */
 static
 void ps_fetch_datetime(zval *zv, const MYSQLND_FIELD * const field,
 						uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -331,8 +350,10 @@
 	ZVAL_UTF8_STRINGL(zv, to, length, ZSTR_AUTOFREE);
 #endif
 }
+/* }}} */
 
 
+/* {{{ ps_fetch_string */
 static
 void ps_fetch_string(zval *zv, const MYSQLND_FIELD * const field,
 					 uint pack_len, zend_uchar **row TSRMLS_DC)
@@ -346,11 +367,16 @@
 #if PHP_MAJOR_VERSION < 6
 	ZVAL_STRINGL(zv, (char *)*row, length, 1);
 #else
-	ZVAL_UTF8_STRINGL(zv, (char*)*row, length, ZSTR_DUPLICATE);
+	if (field->charsetnr == MYSQLND_BINARY_CHARSET_NR) {
+		ZVAL_STRINGL(zv, (char *)*row, length, 1);
+	} else {
+		ZVAL_UTF8_STRINGL(zv, (char*)*row, length, ZSTR_DUPLICATE);
+	}
 #endif
 
 	(*row) += length;
 }
+/* }}} */
 
 
 
@@ -461,6 +487,7 @@
 /* }}} */
 
 
+/* {{{ mysqlnd_stmt_execute_store_params */
 void
 mysqlnd_stmt_execute_store_params(MYSQLND_STMT *stmt, zend_uchar **buf, zend_uchar **p,
 								  size_t *buf_len, unsigned int null_byte_offset)
@@ -606,8 +633,10 @@
 		}
 	}
 }
+/* }}} */
 
 
+/* {{{ mysqlnd_stmt_execute_generate_request */
 zend_uchar* mysqlnd_stmt_execute_generate_request(MYSQLND_STMT *stmt, size_t
*request_len, zend_bool *free_buffer)
 {
 	zend_uchar	*p = stmt->cmd_buffer.buffer,
@@ -643,3 +672,4 @@
 	*request_len = (p - cmd_buffer);
 	return cmd_buffer;
 }
+/* }}} */

Thread
PHP mysqlnd svn commit: r178 - trunk/ext/mysqli/mysqlndahristov16 Mar