From 05b2a03297303d7ef673a50dc2fc0a2efdc8f968 Mon Sep 17 00:00:00 2001 From: Andrey Hristov Date: Mon, 5 May 2008 12:30:38 +0000 Subject: [PATCH] Fix build with libmysql 6.0.x --- NEWS | 2 ++ ext/mysqli/mysqli.c | 4 +++- ext/mysqli/mysqli_fe.c | 21 +++++++++++++++++++++ ext/mysqli/mysqli_repl.c | 3 +++ ext/mysqli/php_mysqli.h | 5 +++++ 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index a1879bacf5..9255645ade 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,8 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2008, PHP 5.2.7 +- Fixed build failure of ext/mysqli with libmysql 6.0 - missing rpl + functions. (Andrey) - Fixed bug #44891 Memory leak using registerPHPFunctions and XSLT Variable as function parameter. (Rob) diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 3280ff832d..afbdbef877 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -639,11 +639,13 @@ PHP_MINIT_FUNCTION(mysqli) REGISTER_LONG_CONSTANT("MYSQLI_SET_CHARSET_NAME", MYSQL_SET_CHARSET_NAME, CONST_CS | CONST_PERSISTENT); +#ifdef HAVE_LIBMYSQL_REPLICATION /* replication */ REGISTER_LONG_CONSTANT("MYSQLI_RPL_MASTER", MYSQL_RPL_MASTER, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_RPL_SLAVE", MYSQL_RPL_SLAVE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_RPL_ADMIN", MYSQL_RPL_ADMIN, CONST_CS | CONST_PERSISTENT); - +#endif + /* bind support */ REGISTER_LONG_CONSTANT("MYSQLI_NO_DATA", MYSQL_NO_DATA, CONST_CS | CONST_PERSISTENT); #ifdef MYSQL_DATA_TRUNCATED diff --git a/ext/mysqli/mysqli_fe.c b/ext/mysqli/mysqli_fe.c index f948e0dc1f..dde4fcab2f 100644 --- a/ext/mysqli/mysqli_fe.c +++ b/ext/mysqli/mysqli_fe.c @@ -62,11 +62,15 @@ zend_function_entry mysqli_functions[] = { PHP_FE(mysqli_connect_error, NULL) PHP_FE(mysqli_data_seek, NULL) PHP_FE(mysqli_debug, NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FE(mysqli_disable_reads_from_master, NULL) PHP_FE(mysqli_disable_rpl_parse, NULL) +#endif PHP_FE(mysqli_dump_debug_info, NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FE(mysqli_enable_reads_from_master, NULL) PHP_FE(mysqli_enable_rpl_parse, NULL) +#endif PHP_FE(mysqli_embedded_server_end, NULL) PHP_FE(mysqli_embedded_server_start, NULL) PHP_FE(mysqli_errno, NULL) @@ -101,7 +105,9 @@ zend_function_entry mysqli_functions[] = { PHP_FE(mysqli_kill, NULL) PHP_FE(mysqli_set_local_infile_default, NULL) PHP_FE(mysqli_set_local_infile_handler, NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FE(mysqli_master_query, NULL) +#endif PHP_FE(mysqli_more_results, NULL) PHP_FE(mysqli_multi_query, NULL) PHP_FE(mysqli_next_result, NULL) @@ -116,9 +122,11 @@ zend_function_entry mysqli_functions[] = { PHP_FE(mysqli_real_escape_string, NULL) PHP_FE(mysqli_real_query, NULL) PHP_FE(mysqli_rollback, NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FE(mysqli_rpl_parse_enabled, NULL) PHP_FE(mysqli_rpl_probe, NULL) PHP_FE(mysqli_rpl_query_type, NULL) +#endif PHP_FE(mysqli_select_db, NULL) #ifdef HAVE_MYSQLI_SET_CHARSET PHP_FE(mysqli_set_charset, NULL) @@ -138,8 +146,10 @@ zend_function_entry mysqli_functions[] = { PHP_FE(mysqli_stmt_insert_id, NULL) PHP_FE(mysqli_stmt_reset, NULL) PHP_FE(mysqli_stmt_param_count, NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FE(mysqli_send_query, NULL) PHP_FE(mysqli_slave_query, NULL) +#endif PHP_FE(mysqli_sqlstate, NULL) PHP_FE(mysqli_ssl_set, NULL) PHP_FE(mysqli_stat, NULL) @@ -185,11 +195,15 @@ zend_function_entry mysqli_link_methods[] = { PHP_FALIAS(commit,mysqli_commit,NULL) PHP_FALIAS(connect,mysqli_connect,NULL) PHP_FALIAS(debug,mysqli_debug,NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FALIAS(disable_reads_from_master,mysqli_disable_reads_from_master,NULL) PHP_FALIAS(disable_rpl_parse,mysqli_disable_rpl_parse,NULL) +#endif PHP_FALIAS(dump_debug_info,mysqli_dump_debug_info,NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FALIAS(enable_reads_from_master,mysqli_enable_reads_from_master,NULL) PHP_FALIAS(enable_rpl_parse,mysqli_enable_rpl_parse,NULL) +#endif #ifdef HAVE_MYSQLI_GET_CHARSET PHP_FALIAS(get_charset,mysqli_get_charset,NULL) #endif @@ -200,7 +214,9 @@ zend_function_entry mysqli_link_methods[] = { PHP_FALIAS(kill,mysqli_kill,NULL) PHP_FALIAS(set_local_infile_default,mysqli_set_local_infile_default,NULL) PHP_FALIAS(set_local_infile_handler,mysqli_set_local_infile_handler,NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FALIAS(master_query,mysqli_master_query,NULL) +#endif PHP_FALIAS(multi_query,mysqli_multi_query,NULL) PHP_FALIAS(mysqli,mysqli_connect,NULL) PHP_FALIAS(more_results,mysqli_more_results, NULL) @@ -214,15 +230,20 @@ zend_function_entry mysqli_link_methods[] = { PHP_FALIAS(escape_string, mysqli_real_escape_string,NULL) PHP_FALIAS(real_query,mysqli_real_query,NULL) PHP_FALIAS(rollback,mysqli_rollback,NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION PHP_FALIAS(rpl_parse_enabled,mysqli_rpl_parse_enabled,NULL) PHP_FALIAS(rpl_probe,mysqli_rpl_probe,NULL) PHP_FALIAS(rpl_query_type,mysqli_rpl_query_type,NULL) +#endif PHP_FALIAS(select_db,mysqli_select_db,NULL) #ifdef HAVE_MYSQLI_SET_CHARSET PHP_FALIAS(set_charset,mysqli_set_charset,NULL) #endif PHP_FALIAS(set_opt, mysqli_options,NULL) +#ifdef HAVE_LIBMYSQL_REPLICATION + PHP_FALIAS(send_query,mysqli_send_query,NULL) PHP_FALIAS(slave_query,mysqli_slave_query,NULL) +#endif PHP_FALIAS(ssl_set,mysqli_ssl_set,NULL) PHP_FALIAS(stat,mysqli_stat,NULL) PHP_FALIAS(stmt_init,mysqli_stmt_init, NULL) diff --git a/ext/mysqli/mysqli_repl.c b/ext/mysqli/mysqli_repl.c index 09a9f45125..81ee100b09 100644 --- a/ext/mysqli/mysqli_repl.c +++ b/ext/mysqli/mysqli_repl.c @@ -29,6 +29,7 @@ #include "ext/standard/info.h" #include "php_mysqli.h" +#ifdef HAVE_LIBMYSQL_REPLICATION /* {{{ proto void mysqli_disable_reads_from_master(object link) */ PHP_FUNCTION(mysqli_disable_reads_from_master) @@ -211,6 +212,8 @@ PHP_FUNCTION(mysqli_slave_query) } /* }}} */ +#endif /* HAVE_LIBMYSQL_REPLICATION */ + /* * Local variables: * tab-width: 4 diff --git a/ext/mysqli/php_mysqli.h b/ext/mysqli/php_mysqli.h index 5df531f1bf..b118ce640c 100644 --- a/ext/mysqli/php_mysqli.h +++ b/ext/mysqli/php_mysqli.h @@ -301,6 +301,11 @@ if ((MyG(report_mode) & MYSQLI_REPORT_ERROR) && stmt->last_errno) { \ php_mysqli_report_error(stmt->sqlstate, stmt->last_errno, stmt->last_error TSRMLS_CC); \ } +#if MYSQL_VERSION_ID > 32300 && MYSQL_VERSION_ID < 60000 +#define HAVE_LIBMYSQL_REPLICATION +#endif + + PHP_MYSQLI_API void mysqli_register_link(zval *return_value, void *link TSRMLS_DC); PHP_MYSQLI_API void mysqli_register_stmt(zval *return_value, void *stmt TSRMLS_DC); PHP_MYSQLI_API void mysqli_register_result(zval *return_value, void *result TSRMLS_DC); -- 2.40.0