summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqlnd/mysqlnd.h')
-rw-r--r--ext/mysqlnd/mysqlnd.h165
1 files changed, 59 insertions, 106 deletions
diff --git a/ext/mysqlnd/mysqlnd.h b/ext/mysqlnd/mysqlnd.h
index 3b3f637e0..1b51c4f14 100644
--- a/ext/mysqlnd/mysqlnd.h
+++ b/ext/mysqlnd/mysqlnd.h
@@ -17,13 +17,13 @@
| Ulf Wendel <uwendel@mysql.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: mysqlnd.h 289630 2009-10-14 13:51:25Z johannes $ */
+/* $Id: mysqlnd.h 294543 2010-02-04 20:28:55Z johannes $ */
#ifndef MYSQLND_H
#define MYSQLND_H
-#define MYSQLND_VERSION "mysqlnd 5.0.5-dev - 081106 - $Revision: 289630 $"
-#define MYSQLND_VERSION_ID 50005
+#define MYSQLND_VERSION "mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $"
+#define MYSQLND_VERSION_ID 50007
/* This forces inlining of some accessor functions */
#define MYSQLND_USE_OPTIMISATIONS 0
@@ -40,7 +40,7 @@
on production systems, if of course measured performance degradation is not
minimal.
*/
-#if PHP_DEBUG
+#if A0 && PHP_DEBUG
#define MYSQLND_DO_WIRE_CHECK_BEFORE_COMMAND 1
#endif
@@ -59,11 +59,24 @@
#include "mysqlnd_structs.h"
+/* Library related */
+PHPAPI void mysqlnd_library_init(TSRMLS_D);
+PHPAPI void mysqlnd_library_end(TSRMLS_D);
+PHPAPI unsigned int mysqlnd_plugin_register();
+PHPAPI unsigned int mysqlnd_plugin_count();
+PHPAPI void ** _mysqlnd_plugin_get_plugin_connection_data(const MYSQLND * conn, unsigned int plugin_id TSRMLS_DC);
+#define mysqlnd_plugin_get_plugin_connection_data(c, p_id) _mysqlnd_plugin_get_plugin_connection_data((c), (p_id) TSRMLS_CC)
+
+PHPAPI void ** _mysqlnd_plugin_get_plugin_result_data(const MYSQLND_RES * result, unsigned int plugin_id TSRMLS_DC);
+#define mysqlnd_plugin_get_plugin_result_data(r, p_id) _mysqlnd_plugin_get_plugin_result_data((r), (p_id) TSRMLS_CC)
+
+PHPAPI void ** _mysqlnd_plugin_get_plugin_stmt_data(const MYSQLND_STMT * stmt, unsigned int plugin_id TSRMLS_DC);
+#define mysqlnd_plugin_get_plugin_stmt_data(s, p_id) _mysqlnd_plugin_get_plugin_stmt_data((s), (p_id) TSRMLS_CC)
+
+PHPAPI void ** _mysqlnd_plugin_get_plugin_protocol_data(const MYSQLND_PROTOCOL * protocol, unsigned int plugin_id TSRMLS_DC);
+#define mysqlnd_plugin_get_plugin_protocol_data(p, p_id) _mysqlnd_plugin_get_plugin_protocol_data((p), (p_id) TSRMLS_CC)
-/* Library related */
-void mysqlnd_library_init(TSRMLS_D);
-void mysqlnd_library_end(TSRMLS_D);
PHPAPI struct st_mysqlnd_conn_methods * mysqlnd_conn_get_methods();
PHPAPI void mysqlnd_conn_set_methods(struct st_mysqlnd_conn_methods *methods);
@@ -72,8 +85,8 @@ PHPAPI struct st_mysqlnd_stmt_methods * mysqlnd_stmt_get_methods();
PHPAPI void mysqlnd_stmt_set_methods(struct st_mysqlnd_stmt_methods *methods);
-#define mysqlnd_restart_psession(conn, cache) _mysqlnd_restart_psession((conn), (cache) TSRMLS_CC)
-PHPAPI void _mysqlnd_restart_psession(MYSQLND *conn, MYSQLND_THD_ZVAL_PCACHE *cache TSRMLS_DC);
+#define mysqlnd_restart_psession(conn) _mysqlnd_restart_psession((conn) TSRMLS_CC)
+PHPAPI void _mysqlnd_restart_psession(MYSQLND * conn TSRMLS_DC);
#define mysqlnd_end_psession(conn) _mysqlnd_end_psession((conn) TSRMLS_CC)
PHPAPI void _mysqlnd_end_psession(MYSQLND *conn TSRMLS_DC);
PHPAPI void mysqlnd_minfo_print_hash(zval *values);
@@ -92,11 +105,10 @@ PHPAPI MYSQLND * mysqlnd_connect(MYSQLND *conn,
const char *db, unsigned int db_len,
unsigned int port,
const char *socket,
- unsigned int mysql_flags,
- MYSQLND_THD_ZVAL_PCACHE *zval_cache
+ unsigned int mysql_flags
TSRMLS_DC);
-#define mysqlnd_change_user(conn, user, passwd, db) (conn)->m->change_user((conn), (user), (passwd), (db) TSRMLS_CC)
+#define mysqlnd_change_user(conn, user, passwd, db, silent) (conn)->m->change_user((conn), (user), (passwd), (db), (silent) TSRMLS_CC)
#define mysqlnd_debug(x) _mysqlnd_debug((x) TSRMLS_CC)
PHPAPI void _mysqlnd_debug(const char *mode TSRMLS_DC);
@@ -120,7 +132,6 @@ PHPAPI enum_func_status _mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQ
#define mysqlnd_use_result(conn) (conn)->m->use_result((conn) TSRMLS_CC)
#define mysqlnd_store_result(conn) (conn)->m->store_result((conn) TSRMLS_CC)
-#define mysqlnd_bg_store_result(conn) (conn)->m->background_store_result((conn) TSRMLS_CC)
#define mysqlnd_next_result(conn) (conn)->m->next_result((conn) TSRMLS_CC)
#define mysqlnd_more_results(conn) (conn)->m->more_results((conn) TSRMLS_CC)
#define mysqlnd_free_result(r,e_or_i) ((MYSQLND_RES*)r)->m.free_result(((MYSQLND_RES*)(r)), (e_or_i) TSRMLS_CC)
@@ -151,7 +162,7 @@ PHPAPI enum_func_status _mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQ
#define mysqlnd_num_rows(result) ((result)->stored_data? (result)->stored_data->row_count:0)
#define mysqlnd_num_fields(result) (result)->field_count
-#define mysqlnd_fetch_lengths(result) ((result)->m.fetch_lengths? (result)->m.fetch_lengths((result)):NULL)
+#define mysqlnd_fetch_lengths(result) ((result)->m.fetch_lengths? (result)->m.fetch_lengths((result) TSRMLS_CC) : NULL)
#define mysqlnd_field_seek(result, ofs) (result)->m.seek_field((result), (ofs))
#define mysqlnd_field_tell(result) ((result)->meta? (result)->meta->current_field:0)
@@ -181,31 +192,32 @@ PHPAPI enum_func_status _mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQ
/*****************************************************************************************************/
/* Errors */
-#define mysqlnd_errno(conn) (conn)->m->get_error_no((conn))
-#define mysqlnd_error(conn) (conn)->m->get_error_str((conn))
-#define mysqlnd_sqlstate(conn) (conn)->m->get_sqlstate((conn))
+#define mysqlnd_errno(conn) (conn)->m->get_error_no((conn) TSRMLS_CC)
+#define mysqlnd_error(conn) (conn)->m->get_error_str((conn) TSRMLS_CC)
+#define mysqlnd_sqlstate(conn) (conn)->m->get_sqlstate((conn) TSRMLS_CC)
/* Charset */
-#define mysqlnd_character_set_name(conn) (conn)->m->charset_name((conn))
+#define mysqlnd_character_set_name(conn) (conn)->m->charset_name((conn) TSRMLS_CC)
/* Simple metadata */
-#define mysqlnd_field_count(conn) (conn)->m->get_field_count((conn))
-#define mysqlnd_insert_id(conn) (conn)->m->get_last_insert_id((conn))
-#define mysqlnd_affected_rows(conn) (conn)->m->get_affected_rows((conn))
-#define mysqlnd_warning_count(conn) (conn)->m->get_warning_count((conn))
-#define mysqlnd_info(conn) (conn)->m->get_last_message((conn))
-#define mysqlnd_get_server_info(conn) (conn)->m->get_server_information((conn))
-#define mysqlnd_get_host_info(conn) (conn)->m->get_host_information((conn))
-#define mysqlnd_get_proto_info(conn) (conn)->m->get_protocol_information((conn))
-#define mysqlnd_thread_id(conn) (conn)->m->get_thread_id((conn))
-
-#define mysqlnd_num_rows(result) (result)->m.num_rows((result))
-#define mysqlnd_num_fields(result) (result)->m.num_fields((result))
-
-PHPAPI unsigned long * mysqlnd_fetch_lengths(MYSQLND_RES * const result);
-
-#define mysqlnd_field_seek(result, ofs) (result)->m.seek_field((result), (ofs))
-#define mysqlnd_field_tell(result) (result)->m.field_tell((result))
+#define mysqlnd_field_count(conn) (conn)->m->get_field_count((conn) TSRMLS_CC)
+#define mysqlnd_insert_id(conn) (conn)->m->get_last_insert_id((conn) TSRMLS_CC)
+#define mysqlnd_affected_rows(conn) (conn)->m->get_affected_rows((conn) TSRMLS_CC)
+#define mysqlnd_warning_count(conn) (conn)->m->get_warning_count((conn) TSRMLS_CC)
+#define mysqlnd_info(conn) (conn)->m->get_last_message((conn) TSRMLS_CC)
+#define mysqlnd_get_server_info(conn) (conn)->m->get_server_information((conn) TSRMLS_CC)
+#define mysqlnd_get_host_info(conn) (conn)->m->get_host_information((conn) TSRMLS_CC)
+#define mysqlnd_get_proto_info(conn) (conn)->m->get_protocol_information((conn) TSRMLS_CC)
+#define mysqlnd_thread_id(conn) (conn)->m->get_thread_id((conn) TSRMLS_CC)
+
+#define mysqlnd_num_rows(result) (result)->m.num_rows((result) TSRMLS_CC)
+#define mysqlnd_num_fields(result) (result)->m.num_fields((result) TSRMLS_CC)
+
+#define mysqlnd_fetch_lengths(result) _mysqlnd_fetch_lengths((result) TSRMLS_CC)
+PHPAPI unsigned long * _mysqlnd_fetch_lengths(MYSQLND_RES * const result TSRMLS_DC);
+
+#define mysqlnd_field_seek(result, ofs) (result)->m.seek_field((result), (ofs) TSRMLS_CC)
+#define mysqlnd_field_tell(result) (result)->m.field_tell((result) TSRMLS_CC)
#define mysqlnd_fetch_field(result) (result)->m.fetch_field((result) TSRMLS_CC)
#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)
@@ -215,15 +227,15 @@ PHPAPI const char * mysqlnd_get_client_info();
PHPAPI unsigned int mysqlnd_get_client_version();
/* PS */
-#define mysqlnd_stmt_insert_id(stmt) (stmt)->m->get_last_insert_id((stmt))
-#define mysqlnd_stmt_affected_rows(stmt) (stmt)->m->get_affected_rows((stmt))
-#define mysqlnd_stmt_num_rows(stmt) (stmt)->m->get_num_rows((stmt))
-#define mysqlnd_stmt_param_count(stmt) (stmt)->m->get_param_count((stmt))
-#define mysqlnd_stmt_field_count(stmt) (stmt)->m->get_field_count((stmt))
-#define mysqlnd_stmt_warning_count(stmt) (stmt)->m->get_warning_count((stmt))
-#define mysqlnd_stmt_errno(stmt) (stmt)->m->get_error_no((stmt))
-#define mysqlnd_stmt_error(stmt) (stmt)->m->get_error_str((stmt))
-#define mysqlnd_stmt_sqlstate(stmt) (stmt)->m->get_sqlstate((stmt))
+#define mysqlnd_stmt_insert_id(stmt) (stmt)->m->get_last_insert_id((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_affected_rows(stmt) (stmt)->m->get_affected_rows((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_num_rows(stmt) (stmt)->m->get_num_rows((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_param_count(stmt) (stmt)->m->get_param_count((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_field_count(stmt) (stmt)->m->get_field_count((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_warning_count(stmt) (stmt)->m->get_warning_count((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_errno(stmt) (stmt)->m->get_error_no((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_error(stmt) (stmt)->m->get_error_str((stmt) TSRMLS_CC)
+#define mysqlnd_stmt_sqlstate(stmt) (stmt)->m->get_sqlstate((stmt) TSRMLS_CC)
#endif /* MYSQLND_USE_OPTIMISATIONS */
/*****************************************************************************************************/
@@ -252,7 +264,7 @@ PHPAPI void mysqlnd_set_local_infile_handler(MYSQLND * const conn, const char *
#define mysqlnd_kill(conn, pid) (conn)->m->kill_connection((conn), (pid) TSRMLS_CC)
#define mysqlnd_refresh(conn, options) (conn)->m->refresh_server((conn), (options) TSRMLS_CC)
#define mysqlnd_shutdown(conn, level) (conn)->m->shutdown_server((conn), (level) TSRMLS_CC)
-#define mysqlnd_get_server_version(conn) (conn)->m->get_server_version((conn))
+#define mysqlnd_get_server_version(conn) (conn)->m->get_server_version((conn) TSRMLS_CC)
#define mysqlnd_set_character_set(conn, cs) (conn)->m->set_charset((conn), (cs) TSRMLS_CC)
#define mysqlnd_stat(conn, msg, msg_len) (conn)->m->get_server_statistics((conn), (msg), (msg_len) TSRMLS_CC)
#define mysqlnd_options(conn, opt, value) (conn)->m->set_client_option((conn), (opt), (value) TSRMLS_CC)
@@ -270,7 +282,6 @@ PHPAPI ulong mysqlnd_old_escape_string(char *newstr, const char *escapestr, size
/* PS */
#define mysqlnd_stmt_init(conn) (conn)->m->stmt_init((conn) TSRMLS_CC)
#define mysqlnd_stmt_store_result(stmt) (!mysqlnd_stmt_field_count((stmt)) ? PASS:((stmt)->m->store_result((stmt) TSRMLS_CC)? PASS:FAIL))
-#define mysqlnd_stmt_bg_store_result(stmt) (!mysqlnd_stmt_field_count((stmt)) ? PASS:((stmt)->m->background_store_result((stmt) TSRMLS_CC)? PASS:FAIL))
#define mysqlnd_stmt_get_result(stmt) (stmt)->m->get_result((stmt) TSRMLS_CC)
#define mysqlnd_stmt_more_results(stmt) (stmt)->m->more_results((stmt) TSRMLS_CC)
#define mysqlnd_stmt_next_result(stmt) (stmt)->m->next_result((stmt) TSRMLS_CC)
@@ -302,63 +313,6 @@ PHPAPI ulong mysqlnd_old_escape_string(char *newstr, const char *escapestr, size
/* Performance statistics */
PHPAPI void _mysqlnd_get_client_stats(zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC);
-/* Persistent caching zval allocator */
-#define mysqlnd_palloc_init_cache(size) _mysqlnd_palloc_init_cache((size) TSRMLS_CC)
-#define mysqlnd_palloc_free_cache(cache) _mysqlnd_palloc_free_cache((cache) TSRMLS_CC)
-PHPAPI MYSQLND_ZVAL_PCACHE* _mysqlnd_palloc_init_cache(unsigned int cache_size TSRMLS_DC);
-PHPAPI void _mysqlnd_palloc_free_cache(MYSQLND_ZVAL_PCACHE *cache TSRMLS_DC);
-PHPAPI void mysqlnd_palloc_stats(const MYSQLND_ZVAL_PCACHE * const cache,
- zval *return_value);
-
-#define mysqlnd_palloc_rinit(cache) _mysqlnd_palloc_rinit((cache) TSRMLS_CC)
-#define mysqlnd_palloc_rshutdown(cache) _mysqlnd_palloc_rshutdown((cache) TSRMLS_CC)
-PHPAPI MYSQLND_THD_ZVAL_PCACHE * _mysqlnd_palloc_rinit(MYSQLND_ZVAL_PCACHE * cache TSRMLS_DC);
-PHPAPI void _mysqlnd_palloc_rshutdown(MYSQLND_THD_ZVAL_PCACHE * cache TSRMLS_DC);
-
-
-#define mysqlnd_palloc_init_thd_cache(cache) _mysqlnd_palloc_init_thd_cache((cache) TSRMLS_CC)
-#define mysqlnd_palloc_free_thd_cache_reference(cache) _mysqlnd_palloc_free_thd_cache_reference((cache) TSRMLS_CC)
-#define mysqlnd_palloc_get_thd_cache_reference(cache) _mysqlnd_palloc_get_thd_cache_reference((cache) TSRMLS_CC)
-
-PHPAPI MYSQLND_THD_ZVAL_PCACHE* _mysqlnd_palloc_init_thd_cache(MYSQLND_ZVAL_PCACHE * const cache TSRMLS_DC);
-MYSQLND_THD_ZVAL_PCACHE* _mysqlnd_palloc_get_thd_cache_reference(MYSQLND_THD_ZVAL_PCACHE * const cache TSRMLS_DC);
-PHPAPI void _mysqlnd_palloc_free_thd_cache_reference(MYSQLND_THD_ZVAL_PCACHE **cache TSRMLS_DC);
-
-
-/* There two should not be used from outside */
-void * mysqlnd_palloc_get_zval(MYSQLND_THD_ZVAL_PCACHE * const cache, zend_bool *allocated TSRMLS_DC);
-void mysqlnd_palloc_zval_ptr_dtor(zval **zv, MYSQLND_THD_ZVAL_PCACHE * const cache,
- enum_mysqlnd_res_type type, zend_bool *copy_ctor_called TSRMLS_DC);
-
-
-
-/* ---------------------- QUERY CACHE ---------------*/
-struct st_mysqlnd_qcache {
- HashTable *ht;
- unsigned int references;
-#ifdef ZTS
- MUTEX_T LOCK_access;
-#endif
-};
-
-
-typedef struct st_mysqlnd_qcache_element {
- MYSQLND_RES_BUFFERED *data;
- MYSQLND_RES_METADATA *meta;
- const char * query;
- size_t query_len;
-} MYSQLND_QCACHE_ELEMENT;
-
-
-PHPAPI MYSQLND_QCACHE * mysqlnd_qcache_init_cache();
-PHPAPI MYSQLND_QCACHE * mysqlnd_qcache_get_cache_reference(MYSQLND_QCACHE * const cache);
-PHPAPI void mysqlnd_qcache_free_cache_reference(MYSQLND_QCACHE **cache);
-PHPAPI void mysqlnd_qcache_stats(const MYSQLND_QCACHE * const cache, zval *return_value);
-MYSQLND_RES * mysqlnd_qcache_get(MYSQLND_QCACHE * const cache, const char * query,
- size_t query_len);
-void mysqlnd_qcache_put(MYSQLND_QCACHE * const cache, char * query, size_t query_len,
- MYSQLND_RES_BUFFERED * const result, MYSQLND_RES_METADATA * const meta);
-
/* double check the class name to avoid naming conflicts when using these: */
#define MYSQLND_METHOD(class, method) php_##class##_##method##_pub
#define MYSQLND_METHOD_PRIVATE(class, method) php_##class##_##method##_priv
@@ -371,9 +325,6 @@ ZEND_BEGIN_MODULE_GLOBALS(mysqlnd)
long net_cmd_buffer_size;
long net_read_buffer_size;
long log_mask;
-#ifdef MYSQLND_THREADED
- THREAD_T thread_id;
-#endif
long net_read_timeout;
ZEND_END_MODULE_GLOBALS(mysqlnd)
@@ -386,6 +337,8 @@ ZEND_EXTERN_MODULE_GLOBALS(mysqlnd);
#endif
+PHPAPI void mysqlnd_minfo_print_hash(zval *values);
+
#endif /* MYSQLND_H */