diff --git a/.gitignore b/.gitignore index e6af4ccae..cd5b27499 100644 --- a/.gitignore +++ b/.gitignore @@ -79,6 +79,7 @@ deps/mariadb-client-library/mariadb_client-2.0.0-Linux-x86/ deps/mariadb-client-library/mariadb_client-2.0.0-Linux-x86_64/ deps/mariadb-client-library/mariadb_client-2.0.0-src/ deps/mariadb-client-library/mariadb-connector-c-2.1.0-src/ +deps/mariadb-client-library/mariadb-connector-c-2.3.1/ #glib deps/glib/glib-2.40.0/ diff --git a/deps/Makefile b/deps/Makefile index 09eaa2bc8..28a5c2221 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -22,12 +22,14 @@ jemalloc: jemalloc/jemalloc/lib/libjemalloc.a mariadb-client-library/mariadb_client/include/my_config.h: - cd mariadb-client-library && rm -rf mariadb-connector-c-2.1.0-src - cd mariadb-client-library && tar -zxf mariadb-connector-c-2.1.0-src.tar.gz +# cd mariadb-client-library && rm -rf mariadb-connector-c-2.1.0-src +# cd mariadb-client-library && tar -zxf mariadb-connector-c-2.1.0-src.tar.gz + cd mariadb-client-library && rm -rf mariadb-connector-c-2.3.1 + cd mariadb-client-library && tar -zxf mariadb-connector-c-2.3.1-src.tar.gz cd mariadb-client-library/mariadb_client && cmake . cd mariadb-client-library/mariadb_client && patch libmariadb/libmariadb.c < ../libmariadb.c.patch cd mariadb-client-library/mariadb_client && patch libmariadb/net.c < ../net.c.patch - cd mariadb-client-library/mariadb_client && patch libmariadb/mysql_async.c < ../mysql_async.c.patch +# cd mariadb-client-library/mariadb_client && patch libmariadb/mysql_async.c < ../mysql_async.c.patch cd mariadb-client-library/mariadb_client && patch libmariadb/password.c < ../password.c.patch cd mariadb-client-library/mariadb_client && patch include/mysql.h < ../mysql.h.patch cd mariadb-client-library/mariadb_client && CC=${CC} CXX=${CXX} ${MAKE} diff --git a/deps/mariadb-client-library/libmariadb.c.patch b/deps/mariadb-client-library/libmariadb.c.patch index a0121673f..51adcf3e4 100644 --- a/deps/mariadb-client-library/libmariadb.c.patch +++ b/deps/mariadb-client-library/libmariadb.c.patch @@ -1,21 +1,3 @@ -@@ -2192,6 +2192,17 @@ - my_free(mysql->options.extension->ssl_crlpath, MYF(MY_ALLOW_ZERO_PTR)); - if(hash_inited(&mysql->options.extension->connect_attrs)) - hash_free(&mysql->options.extension->connect_attrs); -+ { -+ struct mysql_async_context *ctxt; -+ if ((ctxt = mysql->options.extension->async_context) != 0) { -+ //if (ctxt->active==0) { -+ if (&ctxt->async_context) -+ my_context_destroy(&ctxt->async_context); -+ my_free((gptr)ctxt, MYF(0)); -+ mysql->options.extension->async_context=NULL; -+ //} -+ } -+ } - } - my_free((gptr)mysql->options.extension, MYF(MY_ALLOW_ZERO_PTR)); - /* clear all pointer */ @@ -2257,6 +2268,44 @@ /* reset the connection in all active statements todo: check stmt->mysql in mysql_stmt* functions ! */ @@ -33,7 +15,7 @@ + bzero((char*) &mysql->options,sizeof(mysql->options)); + mysql->net.vio= 0; + if (mysql->free_me) -+ my_free((gptr) mysql,MYF(0)); ++ my_free((gptr) mysql); + } + DBUG_VOID_RETURN; +} diff --git a/deps/mariadb-client-library/mariadb-connector-c-2.3.1-src.tar.gz b/deps/mariadb-client-library/mariadb-connector-c-2.3.1-src.tar.gz new file mode 100644 index 000000000..5d68f7402 Binary files /dev/null and b/deps/mariadb-client-library/mariadb-connector-c-2.3.1-src.tar.gz differ diff --git a/deps/mariadb-client-library/mariadb_client b/deps/mariadb-client-library/mariadb_client index 35d1bab54..9e54dc141 120000 --- a/deps/mariadb-client-library/mariadb_client +++ b/deps/mariadb-client-library/mariadb_client @@ -1 +1 @@ -mariadb-connector-c-2.1.0-src \ No newline at end of file +mariadb-connector-c-2.3.1 \ No newline at end of file diff --git a/deps/mariadb-client-library/mysql.h.patch b/deps/mariadb-client-library/mysql.h.patch index 79f981869..e119f2157 100644 --- a/deps/mariadb-client-library/mysql.h.patch +++ b/deps/mariadb-client-library/mysql.h.patch @@ -1,10 +1,8 @@ -@@ -420,6 +420,9 @@ +@@ -424,6 +424,7 @@ + const char *unix_socket, unsigned long clientflag); void STDCALL mysql_close(MYSQL *sock); ++void STDCALL mysql_close_no_command(MYSQL *sock); int STDCALL mysql_select_db(MYSQL *mysql, const char *db); -+int STDCALL mysql_select_db_start(int *ret, MYSQL *mysql, const char *db); -+int STDCALL mysql_select_db_cont(int *ret, MYSQL *mysql, int ready_status); -+void STDCALL mysql_close_no_command(MYSQL *sock); int STDCALL mysql_query(MYSQL *mysql, const char *q); int STDCALL mysql_send_query(MYSQL *mysql, const char *q, - unsigned long length); diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 028ae07f3..eac6e11fc 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -479,17 +479,17 @@ void MySQL_Connection::stmt_execute_start() { if (_rc) { fprintf(stderr, " mysql_stmt_bind_param() failed: %s\n", mysql_stmt_error(query.stmt)); } - proxy_info("Calling mysql_stmt_execute_start, current state: %d\n", query.stmt->state); + //proxy_info("Calling mysql_stmt_execute_start, current state: %d\n", query.stmt->state); async_exit_status = mysql_stmt_execute_start(&interr , query.stmt); - fprintf(stderr,"Current state: %d\n", query.stmt->state); + //fprintf(stderr,"Current state: %d\n", query.stmt->state); } void MySQL_Connection::stmt_execute_cont(short event) { proxy_debug(PROXY_DEBUG_MYSQL_PROTOCOL, 6,"event=%d\n", event); - proxy_info("Calling mysql_stmt_execute_cont, current state: %d\n", query.stmt->state); + //proxy_info("Calling mysql_stmt_execute_cont, current state: %d\n", query.stmt->state); async_exit_status = mysql_stmt_execute_cont(&interr , query.stmt , mysql_status(event, true)); //proxy_info("mysql_stmt_execute_cont , ret=%d\n", async_exit_status); - fprintf(stderr,"Current state: %d\n", query.stmt->state); + //fprintf(stderr,"Current state: %d\n", query.stmt->state); } void MySQL_Connection::stmt_execute_store_result_start() {