summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd.h
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2009-05-28 11:47:48 +0000
committerAndrey Hristov <andrey@php.net>2009-05-28 11:47:48 +0000
commit6c4e8fa4f9f804a636c3d5772e15388f441a21c6 (patch)
treebcba6c85174b29f4317f08cccea00ddb9e3a2268 /ext/mysqlnd/mysqlnd.h
parent90a8a7f857836f7aad7b871a5b8969b1294f412f (diff)
downloadphp-git-6c4e8fa4f9f804a636c3d5772e15388f441a21c6.tar.gz
MFH:
Fix a bug with mysqlnd_fetch_field(_direct()). With mysqlnd the optimised function was called, which however, doesn't respect that during store the raw data is not unpacked, to be lazy. The data is unpacked to zvals later, during every row fetch. However, this way max_length won't be calculated correctly. So, if a mysqlnd_fetch_field(_direct) call comes we need to unpack everything and then calculate max_length...and that is expensive, defies our lazy unpacking optimisation.
Diffstat (limited to 'ext/mysqlnd/mysqlnd.h')
-rw-r--r--ext/mysqlnd/mysqlnd.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/mysqlnd/mysqlnd.h b/ext/mysqlnd/mysqlnd.h
index 2d9a1985e8..99fedc9ef8 100644
--- a/ext/mysqlnd/mysqlnd.h
+++ b/ext/mysqlnd/mysqlnd.h
@@ -158,8 +158,8 @@ PHPAPI enum_func_status _mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQ
#define mysqlnd_field_seek(result, ofs) (result)->m.seek_field((result), (ofs))
#define mysqlnd_field_tell(result) ((result)->meta? (result)->meta->current_field:0)
#define mysqlnd_fetch_field(result) (result)->m.fetch_field((result) TSRMLS_CC)
-#define mysqlnd_fetch_field_direct(result,fnr) ((result)->meta? &((result)->meta->fields[(fnr)]):NULL)
-#define mysqlnd_fetch_fields(result) ((result)->meta? (result)->meta->fields: NULL)
+#define mysqlnd_fetch_field_direct(result,fnr) (result)->m.fetch_field_direct((result), (fnr) TSRMLS_CC)
+#define mysqlnd_fetch_fields(result) (result)->m.fetch_fields((result) TSRMLS_CC)
/* mysqlnd metadata */
#define mysqlnd_get_client_info() MYSQLND_VERSION