cvs: php-src(PHP_5_3) /ext/mysqli mysqli.c /ext/mysqlnd mysqlnd.c mysqlnd_enum_n_def.h mysqlnd_structs.h mysqlnd_wireprotocol.c
| From: | Andrey Hristov | Date: | Mon, 15 Sep 2008 18:09:20 +0000 |
| Subject: | cvs: php-src(PHP_5_3) /ext/mysqli mysqli.c /ext/mysqlnd mysqlnd.c mysqlnd_enum_n_def.h mysqlnd_structs.h mysqlnd_wireprotocol.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-53162@lists.php.net to get a copy of this message | ||
andrey Mon Sep 15 18:09:20 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/mysqli mysqli.c
/php-src/ext/mysqlnd mysqlnd.c mysqlnd_enum_n_def.h
mysqlnd_structs.h mysqlnd_wireprotocol.c
Log:
MFH:
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.72.2.16.2.17.2.29&r2=1.72.2.16.2.17.2.30&diff_format=u
Index: php-src/ext/mysqli/mysqli.c
diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.17.2.29
php-src/ext/mysqli/mysqli.c:1.72.2.16.2.17.2.30
--- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.17.2.29 Fri Jul 25 08:23:06 2008
+++ php-src/ext/mysqli/mysqli.c Mon Sep 15 18:09:20 2008
@@ -17,7 +17,7 @@
| Ulf Wendel <uw@php.net> |
+----------------------------------------------------------------------+
- $Id: mysqli.c,v 1.72.2.16.2.17.2.29 2008/07/25 08:23:06 dmitry Exp $
+ $Id: mysqli.c,v 1.72.2.16.2.17.2.30 2008/09/15 18:09:20 andrey Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -777,7 +777,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.c?r1=1.5.2.26&r2=1.5.2.27&diff_format=u
Index: php-src/ext/mysqlnd/mysqlnd.c
diff -u php-src/ext/mysqlnd/mysqlnd.c:1.5.2.26 php-src/ext/mysqlnd/mysqlnd.c:1.5.2.27
--- php-src/ext/mysqlnd/mysqlnd.c:1.5.2.26 Tue Aug 19 10:42:11 2008
+++ php-src/ext/mysqlnd/mysqlnd.c Mon Sep 15 18:09:20 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysqlnd.c,v 1.5.2.26 2008/08/19 10:42:11 johannes Exp $ */
+/* $Id: mysqlnd.c,v 1.5.2.27 2008/09/15 18:09:20 andrey Exp $ */
#include "php.h"
#include "mysqlnd.h"
#include "mysqlnd_wireprotocol.h"
@@ -1711,8 +1711,8 @@
conn->options.net_read_buffer_size = *(uint*) value;
break;
#ifdef MYSQLND_STRING_TO_INT_CONVERSION
- case MYSQLND_OPT_INT_AND_YEAR_AS_INT:
- conn->options.int_and_year_as_int = *(uint*) value;
+ case MYSQLND_OPT_INT_AND_FLOAT_NATIVE:
+ conn->options.int_and_float_native = *(uint*) value;
break;
#endif
case MYSQL_OPT_CONNECT_TIMEOUT:
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_enum_n_def.h?r1=1.2.2.10&r2=1.2.2.11&diff_format=u
Index: php-src/ext/mysqlnd/mysqlnd_enum_n_def.h
diff -u php-src/ext/mysqlnd/mysqlnd_enum_n_def.h:1.2.2.10
php-src/ext/mysqlnd/mysqlnd_enum_n_def.h:1.2.2.11
--- php-src/ext/mysqlnd/mysqlnd_enum_n_def.h:1.2.2.10 Fri Sep 12 15:08:41 2008
+++ php-src/ext/mysqlnd/mysqlnd_enum_n_def.h Mon Sep 15 18:09:20 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysqlnd_enum_n_def.h,v 1.2.2.10 2008/09/12 15:08:41 andrey Exp $ */
+/* $Id: mysqlnd_enum_n_def.h,v 1.2.2.11 2008/09/15 18:09:20 andrey Exp $ */
#ifndef MYSQLND_ENUM_N_DEF_H
#define MYSQLND_ENUM_N_DEF_H
@@ -136,7 +136,7 @@
MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE = 200,
#endif
#ifdef MYSQLND_STRING_TO_INT_CONVERSION
- MYSQLND_OPT_INT_AND_YEAR_AS_INT = 201,
+ MYSQLND_OPT_INT_AND_FLOAT_NATIVE = 201,
#endif
MYSQLND_OPT_NET_CMD_BUFFER_SIZE = 202,
MYSQLND_OPT_NET_READ_BUFFER_SIZE = 203,
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_structs.h?r1=1.2.2.13&r2=1.2.2.14&diff_format=u
Index: php-src/ext/mysqlnd/mysqlnd_structs.h
diff -u php-src/ext/mysqlnd/mysqlnd_structs.h:1.2.2.13
php-src/ext/mysqlnd/mysqlnd_structs.h:1.2.2.14
--- php-src/ext/mysqlnd/mysqlnd_structs.h:1.2.2.13 Thu Apr 24 14:22:19 2008
+++ php-src/ext/mysqlnd/mysqlnd_structs.h Mon Sep 15 18:09:20 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysqlnd_structs.h,v 1.2.2.13 2008/04/24 14:22:19 andrey Exp $ */
+/* $Id: mysqlnd_structs.h,v 1.2.2.14 2008/09/15 18:09:20 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.4.2.18&r2=1.4.2.19&diff_format=u
Index: php-src/ext/mysqlnd/mysqlnd_wireprotocol.c
diff -u php-src/ext/mysqlnd/mysqlnd_wireprotocol.c:1.4.2.18
php-src/ext/mysqlnd/mysqlnd_wireprotocol.c:1.4.2.19
--- php-src/ext/mysqlnd/mysqlnd_wireprotocol.c:1.4.2.18 Mon Sep 15 14:07:44 2008
+++ php-src/ext/mysqlnd/mysqlnd_wireprotocol.c Mon Sep 15 18:09:20 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) {