summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2010-05-14 15:11:56 +0000
committerAndrey Hristov <andrey@php.net>2010-05-14 15:11:56 +0000
commitc881ee30ead8c7b666a0149676672dc57857a6a1 (patch)
tree9ac9712b3cdb01616aea6fb69aba8a61ca342949
parent34ffc8a6c4af8adca8a7ffae2776c4c86ec19ab1 (diff)
downloadphp-git-c881ee30ead8c7b666a0149676672dc57857a6a1.tar.gz
Allow overloading of mysqlnd_result_meta_init().
Add free space for future hooks.
-rw-r--r--ext/mysqlnd/mysqlnd_result.c5
-rw-r--r--ext/mysqlnd/mysqlnd_structs.h22
2 files changed, 25 insertions, 2 deletions
diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c
index af8474e43a..d7729299e9 100644
--- a/ext/mysqlnd/mysqlnd_result.c
+++ b/ext/mysqlnd/mysqlnd_result.c
@@ -322,7 +322,7 @@ MYSQLND_METHOD(mysqlnd_res, read_result_metadata)(MYSQLND_RES * result, MYSQLND
result->meta = NULL;
}
- result->meta = mysqlnd_result_meta_init(result->field_count, result->persistent TSRMLS_CC);
+ result->meta = result->m.result_meta_init(result->field_count, result->persistent TSRMLS_CC);
/* 1. Read all fields metadata */
@@ -1613,7 +1613,8 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_res)
MYSQLND_METHOD(mysqlnd_res, free_buffered_data),
MYSQLND_METHOD(mysqlnd_res, unbuffered_free_last_data),
- NULL /* row_decoder */
+ NULL /* row_decoder */,
+ mysqlnd_result_meta_init
MYSQLND_CLASS_METHODS_END;
diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h
index b7b72dd545..0a2c928495 100644
--- a/ext/mysqlnd/mysqlnd_structs.h
+++ b/ext/mysqlnd/mysqlnd_structs.h
@@ -277,6 +277,12 @@ struct st_mysqlnd_net_methods
func_mysqlnd_net__free_contents free_contents;
func_mysqlnd_net__enable_ssl enable_ssl;
func_mysqlnd_net__disable_ssl disable_ssl;
+
+ void * unused1;
+ void * unused2;
+ void * unused3;
+ void * unused4;
+ void * unused5;
};
@@ -318,6 +324,12 @@ struct st_mysqlnd_protocol_methods
func_mysqlnd_protocol__get_stats_packet get_stats_packet;
func_mysqlnd_protocol__get_prepare_response_packet get_prepare_response_packet;
func_mysqlnd_protocol__get_change_user_response_packet get_change_user_response_packet;
+
+ void * unused1;
+ void * unused2;
+ void * unused3;
+ void * unused4;
+ void * unused5;
};
@@ -507,6 +519,8 @@ typedef void (*func_mysqlnd_res__row_decoder)(MYSQLND_MEMORY_POOL_CHUNK * row
zend_bool as_unicode, zend_bool as_int_or_float,
MYSQLND_STATS * stats TSRMLS_DC);
+typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res__result_meta_init)(unsigned int field_count, zend_bool persistent TSRMLS_DC);
+
struct st_mysqlnd_res_methods
{
mysqlnd_fetch_row_func fetch_row;
@@ -541,6 +555,14 @@ struct st_mysqlnd_res_methods
/* for decoding - binary or text protocol */
func_mysqlnd_res__row_decoder row_decoder;
+
+ func_mysqlnd_res__result_meta_init result_meta_init;
+
+ void * unused1;
+ void * unused2;
+ void * unused3;
+ void * unused4;
+ void * unused5;
};