cvs: php-src /ext/mysqli mysqli.c /ext/mysqlnd mysqlnd_structs.h mysqlnd_wireprotocol.c

From: Date: Mon, 15 Sep 2008 18:07:58 +0000
Subject: cvs: php-src /ext/mysqli mysqli.c /ext/mysqlnd mysqlnd_structs.h mysqlnd_wireprotocol.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-53161@lists.php.net to get a copy of this message
andrey Mon Sep 15 18:07:58 2008 UTC Modified files: /php-src/ext/mysqli mysqli.c /php-src/ext/mysqlnd mysqlnd_structs.h mysqlnd_wireprotocol.c Log: Add float conversions too. Float users should understand how float works!!! http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.132&r2=1.133&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.132 php-src/ext/mysqli/mysqli.c:1.133 --- php-src/ext/mysqli/mysqli.c:1.132 Fri Jul 25 08:53:11 2008 +++ php-src/ext/mysqli/mysqli.c Mon Sep 15 18:07:58 2008 @@ -17,7 +17,7 @@ | Ulf Wendel <uw@php.net> | +----------------------------------------------------------------------+ - $Id: mysqli.c,v 1.132 2008/07/25 08:53:11 dmitry Exp $ + $Id: mysqli.c,v 1.133 2008/09/15 18:07:58 andrey Exp $ */ #ifdef HAVE_CONFIG_H @@ -783,7 +783,7 @@ REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_READ_BUFFER_SIZE", MYSQLND_OPT_NET_READ_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT); #endif #ifdef MYSQLND_STRING_TO_INT_CONVERSION - REGISTER_LONG_CONSTANT("MYSQLI_OPT_INT_AND_YEAR_AS_INT", MYSQLND_OPT_INT_AND_YEAR_AS_INT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MYSQLI_OPT_INT_AND_FLOAT_NATIVE", MYSQLND_OPT_INT_AND_FLOAT_NATIVE, CONST_CS | CONST_PERSISTENT); #endif /* mysqli_real_connect flags */ http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_structs.h?r1=1.15&r2=1.16&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_structs.h diff -u php-src/ext/mysqlnd/mysqlnd_structs.h:1.15 php-src/ext/mysqlnd/mysqlnd_structs.h:1.16 --- php-src/ext/mysqlnd/mysqlnd_structs.h:1.15 Thu Apr 24 14:04:58 2008 +++ php-src/ext/mysqlnd/mysqlnd_structs.h Mon Sep 15 18:07:58 2008 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysqlnd_structs.h,v 1.15 2008/04/24 14:04:58 andrey Exp $ */ +/* $Id: mysqlnd_structs.h,v 1.16 2008/09/15 18:07:58 andrey Exp $ */ #ifndef MYSQLND_STRUCTS_H #define MYSQLND_STRUCTS_H @@ -177,7 +177,7 @@ zend_bool numeric_and_datetime_as_unicode; #ifdef MYSQLND_STRING_TO_INT_CONVERSION - zend_bool int_and_year_as_int; + zend_bool int_and_float_native; #endif unsigned int net_read_buffer_size; } MYSQLND_OPTION; http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_wireprotocol.c?r1=1.20&r2=1.21&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_wireprotocol.c diff -u php-src/ext/mysqlnd/mysqlnd_wireprotocol.c:1.20 php-src/ext/mysqlnd/mysqlnd_wireprotocol.c:1.21 --- php-src/ext/mysqlnd/mysqlnd_wireprotocol.c:1.20 Mon Sep 15 14:02:55 2008 +++ php-src/ext/mysqlnd/mysqlnd_wireprotocol.c Mon Sep 15 18:07:58 2008 @@ -1467,7 +1467,7 @@ zend_uchar *bit_area = (zend_uchar*) row_buffer->ptr + data_size + 1; /* we allocate from here */ zend_bool as_unicode = conn->options.numeric_and_datetime_as_unicode; #ifdef MYSQLND_STRING_TO_INT_CONVERSION - zend_bool as_int = conn->options.int_and_year_as_int; + zend_bool as_int_or_float = conn->options.int_and_float_native; #endif DBG_ENTER("php_mysqlnd_rowp_read_text_protocol"); @@ -1551,7 +1551,7 @@ } #ifdef MYSQLND_STRING_TO_INT_CONVERSION - if (as_int && perm_bind.php_type == IS_LONG && + if (as_int_or_float && perm_bind.php_type == IS_LONG && perm_bind.pack_len <= SIZEOF_LONG) { zend_uchar save = *(p + len); @@ -1580,6 +1580,14 @@ } } *(p + len) = save; + } else if (as_int_or_float && perm_bind.php_type == IS_DOUBLE) + { + zend_uchar save = *(p + len); + /* We have to make it ASCIIZ temporarily */ + *(p + len) = '\0'; + double v = atof((char *) p); + ZVAL_DOUBLE(*current_field, v); + *(p + len) = save; } else #endif /* MYSQLND_STRING_TO_INT_CONVERSION */ if (fields_metadata[i].type == MYSQL_TYPE_BIT) {

« previous php.cvs (#53161) next »