From 4fb78b90ba6e7b39900d699f33794a52583a00c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Tue, 10 May 2016 12:37:47 +0000 Subject: [PATCH 01/13] Drafting support for Prepared Statements --- include/MySQL_PreparedStatement.h | 85 +++++++++++++++ include/cpp.h | 1 + include/mysql_connection.h | 1 + lib/Makefile | 2 +- lib/MySQL_PreparedStatement.cpp | 169 ++++++++++++++++++++++++++++++ lib/mysql_connection.cpp | 4 + src/main.cpp | 8 ++ test/PrepStmt/.gitignore | 4 + test/PrepStmt/Makefile | 67 ++++++++++++ test/PrepStmt/client1.cpp | 35 +++++++ test/PrepStmt/client2.cpp | 117 +++++++++++++++++++++ 11 files changed, 492 insertions(+), 1 deletion(-) create mode 100644 include/MySQL_PreparedStatement.h create mode 100644 lib/MySQL_PreparedStatement.cpp create mode 100644 test/PrepStmt/.gitignore create mode 100644 test/PrepStmt/Makefile create mode 100644 test/PrepStmt/client1.cpp create mode 100644 test/PrepStmt/client2.cpp diff --git a/include/MySQL_PreparedStatement.h b/include/MySQL_PreparedStatement.h new file mode 100644 index 000000000..9c7203fb3 --- /dev/null +++ b/include/MySQL_PreparedStatement.h @@ -0,0 +1,85 @@ +#ifndef CLASS_MYSQL_PREPARED_STATEMENT_H +#define CLASS_MYSQL_PREPARED_STATEMENT_H + +#include "proxysql.h" +#include "cpp.h" + + +class MySQL_STMTs_local { + private: + std::map m; + public: + MySQL_STMTs_local() { + } + ~MySQL_STMTs_local(); + // we declare it here to be inline + void insert(uint32_t global_statement_id, MYSQL_STMT *stmt) { + m.insert(std::make_pair(global_statement_id, stmt)); + } + // we declare it here to be inline + MYSQL_STMT * find(uint32_t global_statement_id) { + auto s=m.find(global_statement_id); + if (s!=m.end()) { // found + return s->second; + } + return NULL; // not found + } + uint64_t compute_hash(unsigned int hostgroup, char *user, char *schema, char *query, unsigned int query_length); +}; + +class MySQL_STMT_Global_info { + private: + void compute_hash(); + public: + uint64_t hash; + char *username; + char *schemaname; + char *query; + unsigned int query_length; + unsigned int hostgroup_id; + int ref_count; + uint32_t statement_id; + uint16_t num_columns; + uint16_t num_params; + uint16_t warning_count; + MySQL_STMT_Global_info(uint32_t id, unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, uint64_t _h) { + statement_id=id; + hostgroup_id=h; + ref_count=0; + username=strdup(u); + schemaname=strdup(s); + query=strdup(q); + query_length=ql; + num_params=stmt->param_count; + num_columns=stmt->field_count; + warning_count=stmt->upsert_status.warning_count; + if (_h) { + hash=_h; + } else { + compute_hash(); + } + } + ~MySQL_STMT_Global_info() { + free(username); + free(schemaname); + free(query); + } +}; + +class MySQL_STMT_Manager { + private: + uint32_t next_statement_id; + rwlock_t rwlock; + std::map m; // map using statement id + std::map h; // map using hashes + public: + MySQL_STMT_Manager(); + ~MySQL_STMT_Manager(); + int ref_count(uint32_t statement_id, int cnt, bool lock=true); + uint32_t add_prepared_statement(unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock=true); + MySQL_STMT_Global_info * find_prepared_statement_by_stmt_id(uint32_t id, bool lock=true); + MySQL_STMT_Global_info * find_prepared_statement_by_hash(uint64_t hash, bool lock=true); + uint32_t total_prepared_statements() { return next_statement_id-1; } +}; + +#endif /* CLASS_MYSQL_PREPARED_STATEMENT_H */ diff --git a/include/cpp.h b/include/cpp.h index 041b526cd..0b865a8dc 100644 --- a/include/cpp.h +++ b/include/cpp.h @@ -18,6 +18,7 @@ #include "proxysql_admin.h" #include "MySQL_HostGroups_Manager.h" #include "MySQL_Logger.hpp" +#include "MySQL_PreparedStatement.h" #undef swap #undef min #undef max diff --git a/include/mysql_connection.h b/include/mysql_connection.h index 0fa29b10d..4a4e380ae 100644 --- a/include/mysql_connection.h +++ b/include/mysql_connection.h @@ -52,6 +52,7 @@ class MySQL_Connection { unsigned long long last_time_used; unsigned long long timeout; int fd; + MySQL_STMTs_local *local_stmts; // local view of prepared statements MYSQL *mysql; MYSQL *ret_mysql; MYSQL_RES *mysql_result; diff --git a/lib/Makefile b/lib/Makefile index 95f13c2cb..afa3666ac 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -50,7 +50,7 @@ default: libproxysql.a _OBJ = c_tokenizer.o OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ)) -_OBJ_CPP = ProxySQL_GloVars.oo network.oo debug.oo configfile.oo Query_Cache.oo SpookyV2.oo MySQL_Authentication.oo gen_utils.oo simple_kv.oo sqlite3db.oo global_variables.oo mysql_connection.oo MySQL_HostGroups_Manager.oo mysql_data_stream.oo MySQL_Thread.oo MySQL_Session.oo MySQL_Protocol.oo mysql_backend.oo Query_Processor.oo ProxySQL_Admin.oo MySQL_Monitor.oo MySQL_Logger.oo +_OBJ_CPP = ProxySQL_GloVars.oo network.oo debug.oo configfile.oo Query_Cache.oo SpookyV2.oo MySQL_Authentication.oo gen_utils.oo simple_kv.oo sqlite3db.oo global_variables.oo mysql_connection.oo MySQL_HostGroups_Manager.oo mysql_data_stream.oo MySQL_Thread.oo MySQL_Session.oo MySQL_Protocol.oo mysql_backend.oo Query_Processor.oo ProxySQL_Admin.oo MySQL_Monitor.oo MySQL_Logger.oo MySQL_PreparedStatement.oo OBJ_CPP = $(patsubst %,$(ODIR)/%,$(_OBJ_CPP)) %.ko: %.cpp diff --git a/lib/MySQL_PreparedStatement.cpp b/lib/MySQL_PreparedStatement.cpp new file mode 100644 index 000000000..879c01829 --- /dev/null +++ b/lib/MySQL_PreparedStatement.cpp @@ -0,0 +1,169 @@ +#include "proxysql.h" +#include "cpp.h" + +#include "SpookyV2.h" + +extern MySQL_STMT_Manager *GloMyStmt; + + + + +static uint64_t stmt_compute_hash(unsigned int hostgroup, char *user, char *schema, char *query, unsigned int query_length) { + int l=0; + l+=sizeof(hostgroup); + l+=strlen(user); + l+=strlen(schema); +// two random seperators +#define _COMPUTE_HASH_DEL1_ "-ujhtgf76y576574fhYTRDFwdt-" +#define _COMPUTE_HASH_DEL2_ "-8k7jrhtrgJHRgrefgreRFewg6-" + l+=strlen(_COMPUTE_HASH_DEL1_); + l+=strlen(_COMPUTE_HASH_DEL2_); + l+=query_length; + char *buf=(char *)malloc(l); + l=0; + // write hostgroup + memcpy(buf,&hostgroup,sizeof(hostgroup)); + l+=sizeof(hostgroup); + + // write user + strcpy(buf+l,user); + l+=strlen(user); + + // write delimiter1 + strcpy(buf+l,_COMPUTE_HASH_DEL1_); + l+=strlen(_COMPUTE_HASH_DEL1_); + + // write schema + strcpy(buf+l,schema); + l+=strlen(schema); + + // write delimiter2 + strcpy(buf+l,_COMPUTE_HASH_DEL2_); + l+=strlen(_COMPUTE_HASH_DEL2_); + + // write query + memcpy(buf+l,query,query_length); + l+=query_length; + + uint64_t hash=SpookyHash::Hash64(buf,l,0); + free(buf); + return hash; +} + + +void MySQL_STMT_Global_info::compute_hash() { + hash=stmt_compute_hash(hostgroup_id, username, schemaname, query, query_length); +} + +uint64_t MySQL_STMTs_local::compute_hash(unsigned int hostgroup, char *user, char *schema, char *query, unsigned int query_length){ + uint64_t hash; + hash=stmt_compute_hash(hostgroup, user, schema, query, query_length); + return hash; +} + +MySQL_STMTs_local::~MySQL_STMTs_local() { + // Note: we do not free the prepared statements because we assume that + // if we call this destructor the connection is being destroyed anyway + for (std::map::iterator it=m.begin(); it!=m.end(); ++it) { + uint32_t stmt_id=it->first; + GloMyStmt->ref_count(stmt_id,-1); + } + m.erase(m.begin(),m.end()); +} + +MySQL_STMT_Manager::MySQL_STMT_Manager() { + spinlock_rwlock_init(&rwlock); + next_statement_id=1; // we initialize this as 1 because we 0 is not allowed +} + +MySQL_STMT_Manager::~MySQL_STMT_Manager() { + for (std::map::iterator it=m.begin(); it!=m.end(); ++it) { + MySQL_STMT_Global_info *a=it->second; + delete a; + } + m.erase(m.begin(),m.end()); + // we do not loop in h because all the MySQL_STMT_Global_info() were already deleted + h.erase(h.begin(),h.end()); +} + +int MySQL_STMT_Manager::ref_count(uint32_t statement_id, int cnt, bool lock) { + int ret=-1; + if (lock) { + spin_wrlock(&rwlock); + } + auto s = m.find(statement_id); + if (s!=m.end()) { + MySQL_STMT_Global_info *a=s->second; + a->ref_count+=cnt; + ret=a->ref_count; + } + if (lock) { + spin_wrunlock(&rwlock); + } + return ret; +} + +uint32_t MySQL_STMT_Manager::add_prepared_statement(unsigned int _h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock) { + uint32_t ret=0; + uint64_t hash=stmt_compute_hash(_h, u, s, q, ql); // this identifies the prepared statement + if (lock) { + spin_wrlock(&rwlock); + } + // try to find the statement + auto f = h.find(hash); + if (f!=h.end()) { + // found it! + MySQL_STMT_Global_info *a=f->second; + ret=a->statement_id; + } else { + // we need to create a new one + MySQL_STMT_Global_info *a=new MySQL_STMT_Global_info(next_statement_id,_h,u,s,q,ql,stmt,hash); + // insert it in both maps + m.insert(std::make_pair(a->statement_id, a)); + h.insert(std::make_pair(a->hash, a)); + ret=a->statement_id; + next_statement_id++; // increment it + } + + if (lock) { + spin_wrunlock(&rwlock); + } + return ret; +} + + +MySQL_STMT_Global_info * MySQL_STMT_Manager::find_prepared_statement_by_stmt_id(uint32_t id, bool lock) { + MySQL_STMT_Global_info *ret=NULL; // assume we do not find it + if (lock) { + spin_wrlock(&rwlock); + } + + auto s=m.find(id); + if (s!=m.end()) { + ret=s->second; + } + + if (lock) { + spin_wrunlock(&rwlock); + } + return ret; +} + +MySQL_STMT_Global_info * MySQL_STMT_Manager::find_prepared_statement_by_hash(uint64_t hash, bool lock) { + MySQL_STMT_Global_info *ret=NULL; // assume we do not find it + if (lock) { + spin_wrlock(&rwlock); + } + + auto s=h.find(hash); + if (s!=h.end()) { + ret=s->second; + } + + if (lock) { + spin_wrunlock(&rwlock); + } + return ret; +} + + diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 370e0ee80..1d68c85d1 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -162,6 +162,7 @@ MySQL_Connection::MySQL_Connection() { creation_time=0; processing_multi_statement=false; proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 4, "Creating new MySQL_Connection %p\n", this); + local_stmts=NULL; }; MySQL_Connection::~MySQL_Connection() { @@ -190,6 +191,9 @@ MySQL_Connection::~MySQL_Connection() { if (MyRS) { delete MyRS; } + if (local_stmts) { + delete local_stmts; + } }; bool MySQL_Connection::set_autocommit(bool _ac) { diff --git a/src/main.cpp b/src/main.cpp index 6ddcbb4e0..44ea08642 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -115,6 +115,8 @@ Query_Processor *GloQPro; ProxySQL_Admin *GloAdmin; MySQL_Threads_Handler *GloMTH; +MySQL_STMT_Manager *GloMyStmt; + MySQL_Monitor *GloMyMon; std::thread *MyMon_thread; @@ -209,9 +211,11 @@ void ProxySQL_Main_init_main_modules() { GloMyAuth=NULL; GloMyMon=NULL; GloMyLogger=NULL; + GloMyStmt=NULL; MyHGM=new MySQL_HostGroups_Manager(); GloMTH=new MySQL_Threads_Handler(); GloMyLogger = new MySQL_Logger(); + GloMyStmt=new MySQL_STMT_Manager(); } @@ -305,6 +309,10 @@ void ProxySQL_Main_shutdown_all_modules() { delete GloMyLogger; GloMyLogger=NULL; } + if (GloMyStmt) { + delete GloMyStmt; + GloMyStmt=NULL; + } delete GloAdmin; delete MyHGM; diff --git a/test/PrepStmt/.gitignore b/test/PrepStmt/.gitignore new file mode 100644 index 000000000..79629c502 --- /dev/null +++ b/test/PrepStmt/.gitignore @@ -0,0 +1,4 @@ +client1 +client2 +client3 +client4 diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile new file mode 100644 index 000000000..012fa1fe8 --- /dev/null +++ b/test/PrepStmt/Makefile @@ -0,0 +1,67 @@ + + + + +DEPS_PATH=../../deps + +MARIADB_PATH=$(DEPS_PATH)/mariadb-client-library/mariadb_client +MARIADB_IDIR=$(MARIADB_PATH)/include +MARIADB_LDIR=$(MARIADB_PATH)/libmariadb + + +DAEMONPATH=$(DEPS_PATH)/libdaemon/libdaemon +DAEMONPATH_IDIR=$(DAEMONPATH) +DAEMONPATH_LDIR=$(DAEMONPATH)/libdaemon/.libs + +JEMALLOC_PATH=$(DEPS_PATH)/jemalloc/jemalloc +JEMALLOC_IDIR=$(JEMALLOC_PATH)/include/jemalloc +JEMALLOC_LDIR=$(JEMALLOC_PATH)/lib + +LIBCONFIG_PATH=$(DEPS_PATH)/libconfig/libconfig-1.4.9 +LIBCONFIG_IDIR=-I$(LIBCONFIG_PATH)/lib +LIBCONFIG_LDIR=-L$(LIBCONFIG_PATH)/lib/.libs + +LIBEVENT_PATH=$(DEPS_PATH)/libevent/libevent +LIBEVENT_IDIR=$(LIBEVENT_PATH)/include +LIBEVENT_LDIR=$(LIBEVENT_PATH)/.libs + +RE2_PATH=$(DEPS_PATH)/re2/re2 +RE2_IDIR=$(RE2_PATH) + +SQLITE3_DIR=$(DEPS_PATH)/sqlite3/sqlite3 + +IDIR=../../include +LDIR=../../lib +IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMONPATH_IDIR) -I$(SQLITE3_DIR) +LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(LIBEVENT_LDIR) -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) + + +MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) +LDFLAGS+= +MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -levent -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) + +UNAME_S := $(shell uname -s) +ifeq ($(UNAME_S),Linux) + MYLIBS+= -ldl +endif +ifeq ($(UNAME_S),FreeBSD) + MYLIBS+= -lexecinfo +endif + +LIBPROXYSQLAR=$(LDIR)/libproxysql.a + +.PHONY: default +default: client1 + +client1: client1.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + +client2: client2.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + + +default: $(EXECUTABLE) + +clean: + rm -f *~ core $(default) + diff --git a/test/PrepStmt/client1.cpp b/test/PrepStmt/client1.cpp new file mode 100644 index 000000000..be3111c3d --- /dev/null +++ b/test/PrepStmt/client1.cpp @@ -0,0 +1,35 @@ +#include "proxysql.h" +#include "cpp.h" + +#define QUERY1 "SELECT ?" +MYSQL *mysql; +MYSQL_STMT *stmt; +uint32_t statement_id; +uint16_t num_params; +uint16_t num_columns; +uint16_t warning_count; + +int main() { + mysql = mysql_init(NULL); + if (!mysql_real_connect(mysql,"127.0.0.1","root","","test",3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, QUERY1, strlen(QUERY1))) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// param_count= mysql_stmt_param_count(stmt); +// fprintf(stdout, " total parameters in Query1 : %d\n", param_count); + statement_id=stmt->stmt_id; + num_params=stmt->param_count; + num_columns=stmt->field_count; + warning_count=stmt->upsert_status.warning_count; + fprintf(stdout, "statement_id=%d , columns=%d , params=%d , warnings=%d\n", statement_id, num_columns, num_params, warning_count); + return 0; +} diff --git a/test/PrepStmt/client2.cpp b/test/PrepStmt/client2.cpp new file mode 100644 index 000000000..4df194213 --- /dev/null +++ b/test/PrepStmt/client2.cpp @@ -0,0 +1,117 @@ +#include "proxysql.h" +#include "cpp.h" + +#include + +#define QUERY1 "SELECT ?" +#define NUMPREP 1000000 +#define NUMPRO 10000 +//#define NUMPREP 160 +//#define NUMPRO 4 +#define LOOPS 10 +#define USER "root" +#define SCHEMA "test" +MYSQL *mysql; +MYSQL_STMT **stmt; +uint32_t statement_id; +uint16_t num_params; +uint16_t num_columns; +uint16_t warning_count; + +MySQL_STMT_Manager *GloMyStmt; + +struct cpu_timer +{ + ~cpu_timer() + { + auto end = std::clock() ; + std::cout << double( end - begin ) / CLOCKS_PER_SEC << " secs.\n" ; + }; + + const std::clock_t begin = std::clock() ; +}; + + +int main() { + std::mt19937 mt_rand(time(0)); + GloMyStmt=new MySQL_STMT_Manager(); + MySQL_STMTs_local *local_stmts=new MySQL_STMTs_local(); + mysql = mysql_init(NULL); + char buff[128]; + unsigned int bl=0; + if (!mysql_real_connect(mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + int i; + stmt=(MYSQL_STMT **)malloc(sizeof(MYSQL_STMT*)*NUMPREP); + { + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a==NULL) { + if (mysql_stmt_prepare(stmt[i], buff, bl)) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt[i])); + exit(EXIT_FAILURE); + } + uint32_t a=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt[i]); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt[i]->stmt_id, a); + } + } + fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", NUMPREP, GloMyStmt->total_prepared_statements()); + fprintf(stdout, "Created in: "); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u random strings in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u hashes in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) founds++; + } + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } +// param_count= mysql_stmt_param_count(stmt); +// fprintf(stdout, " total parameters in Query1 : %d\n", param_count); +// statement_id=stmt->stmt_id; +// num_params=stmt->param_count; +// num_columns=stmt->field_count; +// warning_count=stmt->upsert_status.warning_count; +// fprintf(stdout, "statement_id=%d , columns=%d , params=%d , warnings=%d\n", statement_id, num_columns, num_params, warning_count); + return 0; +} From 5169ad449f6f91b3303fac32faaec80d30cd0b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Tue, 10 May 2016 22:33:58 +0000 Subject: [PATCH 02/13] Testing on Prepared Statements Adding some code for the evaluation of prepared statements --- test/PrepStmt/Makefile | 5 +- test/PrepStmt/client2.cpp | 85 ++++++++++++--- test/PrepStmt/client3.cpp | 211 ++++++++++++++++++++++++++++++++++++++ test/PrepStmt/client4.cpp | 190 ++++++++++++++++++++++++++++++++++ 4 files changed, 478 insertions(+), 13 deletions(-) create mode 100644 test/PrepStmt/client3.cpp create mode 100644 test/PrepStmt/client4.cpp diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile index 012fa1fe8..05b2f4066 100644 --- a/test/PrepStmt/Makefile +++ b/test/PrepStmt/Makefile @@ -36,7 +36,7 @@ IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMO LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(LIBEVENT_LDIR) -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) -MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) +MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) -ggdb LDFLAGS+= MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -levent -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) @@ -59,6 +59,9 @@ client1: client1.cpp client2: client2.cpp $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) +client3: client3.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + default: $(EXECUTABLE) diff --git a/test/PrepStmt/client2.cpp b/test/PrepStmt/client2.cpp index 4df194213..c43187ae8 100644 --- a/test/PrepStmt/client2.cpp +++ b/test/PrepStmt/client2.cpp @@ -4,8 +4,8 @@ #include #define QUERY1 "SELECT ?" -#define NUMPREP 1000000 -#define NUMPRO 10000 +#define NUMPREP 100000 +#define NUMPRO 1000 //#define NUMPREP 160 //#define NUMPRO 4 #define LOOPS 10 @@ -32,6 +32,35 @@ struct cpu_timer }; +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[1]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + int main() { std::mt19937 mt_rand(time(0)); GloMyStmt=new MySQL_STMT_Manager(); @@ -62,9 +91,10 @@ int main() { fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt[i])); exit(EXIT_FAILURE); } - uint32_t a=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt[i]); + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt[i]); if (NUMPRO < 32) - fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt[i]->stmt_id, a); + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt[i]->stmt_id, stmid); + local_stmts->insert(stmid,stmt[i]); } } fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", NUMPREP, GloMyStmt->total_prepared_statements()); @@ -104,14 +134,45 @@ int main() { MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); if (a) founds++; } - fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) { + // we have a prepared statement, we can run it + founds++; + MYSQL_STMT *stm=local_stmts->find(a->statement_id); + run_stmt(stm,(uint32_t)mt_rand()); + } + } + fprintf(stdout, "Executed %u prepared statements in: ", founds); + } + + { + // for comparison, we run also queries in TEXT protocol + cpu_timer t; + for (i=0; istmt_id; -// num_params=stmt->param_count; -// num_columns=stmt->field_count; -// warning_count=stmt->upsert_status.warning_count; -// fprintf(stdout, "statement_id=%d , columns=%d , params=%d , warnings=%d\n", statement_id, num_columns, num_params, warning_count); return 0; } diff --git a/test/PrepStmt/client3.cpp b/test/PrepStmt/client3.cpp new file mode 100644 index 000000000..d6f8fe34e --- /dev/null +++ b/test/PrepStmt/client3.cpp @@ -0,0 +1,211 @@ +#include "proxysql.h" +#include "cpp.h" + +#include +#include + +#define QUERY1 "SELECT ?" +#define NUMPREP 100000 +#define NUMPRO 10000 +//#define NUMPREP 160 +//#define NUMPRO 4 +#define LOOPS 1 +#define USER "root" +#define SCHEMA "test" + +#define NTHREADS 4 + +MySQL_STMT_Manager *GloMyStmt; + +typedef struct _thread_data_t { + std::thread *thread; + MYSQL *mysql; + MYSQL_STMT **stmt; +} thread_data_t; + + +thread_data_t **GloThrData; + +struct cpu_timer +{ + ~cpu_timer() + { + auto end = std::clock() ; + std::cout << double( end - begin ) / CLOCKS_PER_SEC << " secs.\n" ; + }; + + const std::clock_t begin = std::clock() ; +}; + + +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[1]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + +void * mysql_thread(int tid) { + std::mt19937 mt_rand(time(0)); + + thread_data_t *THD; + THD=GloThrData[tid]; + + MYSQL *mysql; + MYSQL_STMT **stmt; + + MySQL_STMTs_local *local_stmts=new MySQL_STMTs_local(); + THD->mysql = mysql_init(NULL); + mysql=THD->mysql; + + char buff[128]; + unsigned int bl=0; + if (!mysql_real_connect(mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + int i; + stmt=(MYSQL_STMT **)malloc(sizeof(MYSQL_STMT*)*NUMPREP); + + { + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a==NULL) { + if (mysql_stmt_prepare(stmt[i], buff, bl)) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt[i])); + exit(EXIT_FAILURE); + } + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt[i]); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt[i]->stmt_id, stmid); + local_stmts->insert(stmid,stmt[i]); + } + } + fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", NUMPREP, GloMyStmt->total_prepared_statements()); + fprintf(stdout, "Created in: "); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u random strings in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u hashes in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) founds++; + } + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) { + // we have a prepared statement, we can run it + MYSQL_STMT *stm=local_stmts->find(a->statement_id); + if (stm) { + run_stmt(stm,(uint32_t)mt_rand()); + founds++; + } + } + } + fprintf(stdout, "Executed %u prepared statements in: ", founds); + } + + { + // for comparison, we run also queries in TEXT protocol + cpu_timer t; + for (i=0; ithread = new std::thread(&mysql_thread,i); + } + for (i=0; ithread->join(); + } + return 0; +} diff --git a/test/PrepStmt/client4.cpp b/test/PrepStmt/client4.cpp new file mode 100644 index 000000000..a272656b5 --- /dev/null +++ b/test/PrepStmt/client4.cpp @@ -0,0 +1,190 @@ +#include "proxysql.h" +#include "cpp.h" + +#include + +#define QUERY1 "SELECT ?" +#define NUMPREP 100000 +#define NUMPRO 1000 +//#define NUMPREP 160 +//#define NUMPRO 4 +#define LOOPS 10 +#define USER "root" +#define SCHEMA "test" + +#define NTHREADS 4 + + +typedef struct _thread_data_t { + MYSQL *mysql; + MYSQL_STMT **stmt; +} thread_data_t; + +uint32_t statement_id; +uint16_t num_params; +uint16_t num_columns; +uint16_t warning_count; + +MySQL_STMT_Manager *GloMyStmt; + +struct cpu_timer +{ + ~cpu_timer() + { + auto end = std::clock() ; + std::cout << double( end - begin ) / CLOCKS_PER_SEC << " secs.\n" ; + }; + + const std::clock_t begin = std::clock() ; +}; + + +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[1]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + +void * mysql_thread() { + std::mt19937 mt_rand(time(0)); + + + MySQL_STMTs_local *local_stmts=new MySQL_STMTs_local(); + mysql = mysql_init(NULL); + char buff[128]; + unsigned int bl=0; + if (!mysql_real_connect(mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + int i; + stmt=(MYSQL_STMT **)malloc(sizeof(MYSQL_STMT*)*NUMPREP); + { + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a==NULL) { + if (mysql_stmt_prepare(stmt[i], buff, bl)) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt[i])); + exit(EXIT_FAILURE); + } + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt[i]); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt[i]->stmt_id, stmid); + local_stmts->insert(stmid,stmt[i]); + } + } + fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", NUMPREP, GloMyStmt->total_prepared_statements()); + fprintf(stdout, "Created in: "); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u random strings in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u hashes in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) founds++; + } + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) { + // we have a prepared statement, we can run it + founds++; + MYSQL_STMT *stm=local_stmts->find(a->statement_id); + run_stmt(stm,(uint32_t)mt_rand()); + } + } + fprintf(stdout, "Executed %u prepared statements in: ", founds); + } + + { + // for comparison, we run also queries in TEXT protocol + cpu_timer t; + for (i=0; i Date: Sat, 4 Jun 2016 10:10:27 +0000 Subject: [PATCH 03/13] Preparing more test case for prepared stataments --- include/MySQL_PreparedStatement.h | 15 +- lib/MySQL_PreparedStatement.cpp | 14 ++ test/PrepStmt/.gitignore | 2 + test/PrepStmt/Makefile | 6 + test/PrepStmt/client3.cpp | 4 +- test/PrepStmt/client5.cpp | 267 ++++++++++++++++++++++++++++++ 6 files changed, 305 insertions(+), 3 deletions(-) create mode 100644 test/PrepStmt/client5.cpp diff --git a/include/MySQL_PreparedStatement.h b/include/MySQL_PreparedStatement.h index 9c7203fb3..3e6909c24 100644 --- a/include/MySQL_PreparedStatement.h +++ b/include/MySQL_PreparedStatement.h @@ -5,16 +5,23 @@ #include "cpp.h" +// class MySQL_STMTs_local assiciates a global statement ID with a local statement ID for a specific connection class MySQL_STMTs_local { private: + unsigned int num_entries; std::map m; public: MySQL_STMTs_local() { + num_entries=0; } ~MySQL_STMTs_local(); // we declare it here to be inline void insert(uint32_t global_statement_id, MYSQL_STMT *stmt) { - m.insert(std::make_pair(global_statement_id, stmt)); + std::pair::iterator,bool> ret; + ret=m.insert(std::make_pair(global_statement_id, stmt)); + if (ret.second==true) { + num_entries++; + } } // we declare it here to be inline MYSQL_STMT * find(uint32_t global_statement_id) { @@ -24,9 +31,15 @@ class MySQL_STMTs_local { } return NULL; // not found } + bool erase(uint32_t global_statement_id); uint64_t compute_hash(unsigned int hostgroup, char *user, char *schema, char *query, unsigned int query_length); }; + + +// class MySQL_STMT_Global_info represents information about a MySQL Prepared Statement +// it is an internal representation of prepared statement +// it include all metadata associated with it class MySQL_STMT_Global_info { private: void compute_hash(); diff --git a/lib/MySQL_PreparedStatement.cpp b/lib/MySQL_PreparedStatement.cpp index 879c01829..d86a5f093 100644 --- a/lib/MySQL_PreparedStatement.cpp +++ b/lib/MySQL_PreparedStatement.cpp @@ -71,6 +71,20 @@ MySQL_STMTs_local::~MySQL_STMTs_local() { m.erase(m.begin(),m.end()); } +bool MySQL_STMTs_local::erase(uint32_t global_statement_id) { + auto s=m.find(global_statement_id); + if (s!=m.end()) { // found + if (num_entries>1000) { + MYSQL_STMT *stmt=s->second; + mysql_stmt_close(stmt); + m.erase(s); + num_entries--; + return true; // we truly removed the prepared statement + } + } + return false; // we don't really remove the prepared statement +} + MySQL_STMT_Manager::MySQL_STMT_Manager() { spinlock_rwlock_init(&rwlock); next_statement_id=1; // we initialize this as 1 because we 0 is not allowed diff --git a/test/PrepStmt/.gitignore b/test/PrepStmt/.gitignore index 79629c502..290524341 100644 --- a/test/PrepStmt/.gitignore +++ b/test/PrepStmt/.gitignore @@ -2,3 +2,5 @@ client1 client2 client3 client4 +client5 +client6 diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile index 05b2f4066..1bcd6bdb8 100644 --- a/test/PrepStmt/Makefile +++ b/test/PrepStmt/Makefile @@ -62,6 +62,12 @@ client2: client2.cpp client3: client3.cpp $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) +client4: client4.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + +client5: client5.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + default: $(EXECUTABLE) diff --git a/test/PrepStmt/client3.cpp b/test/PrepStmt/client3.cpp index d6f8fe34e..51c8c2043 100644 --- a/test/PrepStmt/client3.cpp +++ b/test/PrepStmt/client3.cpp @@ -101,8 +101,8 @@ void * mysql_thread(int tid) { bl=strlen(buff); uint64_t hash=local_stmts->compute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); - if (a==NULL) { - if (mysql_stmt_prepare(stmt[i], buff, bl)) { + if (a==NULL) { // no prepared statement was found in global + if (mysql_stmt_prepare(stmt[i], buff, bl)) { // the prepared statement is created fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt[i])); exit(EXIT_FAILURE); } diff --git a/test/PrepStmt/client5.cpp b/test/PrepStmt/client5.cpp new file mode 100644 index 000000000..9c878cdf5 --- /dev/null +++ b/test/PrepStmt/client5.cpp @@ -0,0 +1,267 @@ +#include "proxysql.h" +#include "cpp.h" + +#include +#include + +#define QUERY1 "SELECT ?" +#define NUMPREP 100000 +#define NUMPRO 20000 +//#define NUMPREP 160 +//#define NUMPRO 4 +#define LOOPS 1 +#define USER "root" +#define SCHEMA "test" + +#define NTHREADS 4 + +MySQL_STMT_Manager *GloMyStmt; + +typedef struct _thread_data_t { + std::thread *thread; + MYSQL *mysql; + MYSQL_STMT **stmt; +} thread_data_t; + + +thread_data_t **GloThrData; + +struct cpu_timer +{ + ~cpu_timer() + { + auto end = std::clock() ; + std::cout << double( end - begin ) / CLOCKS_PER_SEC << " secs.\n" ; + }; + + const std::clock_t begin = std::clock() ; +}; + + +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[1]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + +void * mysql_thread(int tid) { + std::mt19937 mt_rand(time(0)); + + thread_data_t *THD; + THD=GloThrData[tid]; + + // in this version, each mysql thread has just ONE connection + // for now we use blocking API + MYSQL *mysql; + + //MYSQL_STMT **stmt; + + // we intialize the local mapping : MySQL_STMTs_local() + MySQL_STMTs_local *local_stmts=new MySQL_STMTs_local(); + + // we initialize a MYSQL structure + THD->mysql = mysql_init(NULL); + mysql=THD->mysql; + + char buff[128]; + unsigned int bl=0; + + // we establish a connection to the database + if (!mysql_real_connect(mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + int i; + + // array of (MYSQL_STMT *) ; we don't use it in this version + //stmt=(MYSQL_STMT **)malloc(sizeof(MYSQL_STMT*)*NUMPREP); + + MYSQL_STMT *stmt; + { + cpu_timer t; + // in this loop we create only some the prepared statements + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a==NULL) { // no prepared statement was found in global + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); + local_stmts->insert(stmid,stmt); + } + } + fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", i, GloMyStmt->total_prepared_statements()); + fprintf(stdout, "Created in: "); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u random strings in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u hashes in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) founds++; + } + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } + + { + unsigned int founds=0; + unsigned int created=0; + unsigned int executed=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) { + // we have a prepared statement, we can run it + MYSQL_STMT *stm=local_stmts->find(a->statement_id); + if (stm) { // the statement exists in local + run_stmt(stm,(uint32_t)mt_rand()); + founds++; + executed++; + local_stmts->erase(a->statement_id); + } else { // the statement doesn't exist locally + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + local_stmts->insert(a->statement_id,stmt); + run_stmt(stmt,(uint32_t)mt_rand()); + created++; + executed++; + local_stmts->erase(a->statement_id); + } + } else { // no prepared statement was found in global + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); + local_stmts->insert(stmid,stmt); + run_stmt(stmt,(uint32_t)mt_rand()); + created++; + executed++; + local_stmts->erase(stmid); + } + } + fprintf(stdout, "Found %u , created %u and executed %u prepared statements in: ", founds, created, executed); + } +/* + { + // for comparison, we run also queries in TEXT protocol + cpu_timer t; + for (i=0; ithread = new std::thread(&mysql_thread,i); + } + // wait for the threads to complete + for (i=0; ithread->join(); + } + return 0; +} From ddd0ad90327be9c7915d1ae4c3c349a628ec977f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 4 Jun 2016 10:31:51 +0000 Subject: [PATCH 04/13] Preparing the handling of _MYSQL_COM_STMT_PREPARE --- include/MySQL_Session.h | 2 +- lib/MySQL_Session.cpp | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/include/MySQL_Session.h b/include/MySQL_Session.h index b5eb5008a..38b2e7721 100644 --- a/include/MySQL_Session.h +++ b/include/MySQL_Session.h @@ -60,7 +60,7 @@ class MySQL_Session void handler___status_WAITING_SERVER_DATA___STATE_READING_COM_STMT_PREPARE_RESPONSE(PtrSize_t *); void handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_SET_OPTION(PtrSize_t *); void handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_STATISTICS(PtrSize_t *); - bool handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(PtrSize_t *); + bool handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(PtrSize_t *, bool ps=false); void handler___client_DSS_QUERY_SENT___server_DSS_NOT_INITIALIZED__get_connection(); diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index f2ad0332a..9f905f8c6 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -773,7 +773,6 @@ __get_pkts_from_client: case _MYSQL_COM_CHANGE_USER: handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_CHANGE_USER(&pkt, &wrong_pass); break; - case _MYSQL_COM_STMT_PREPARE: case _MYSQL_COM_STMT_EXECUTE: case _MYSQL_COM_STMT_CLOSE: l_free(pkt.size,pkt.ptr); @@ -782,6 +781,31 @@ __get_pkts_from_client: client_myds->DSS=STATE_SLEEP; status=WAITING_CLIENT_DATA; break; + case _MYSQL_COM_STMT_PREPARE: + if (admin==true) { // admin module will not support prepared statement!! + l_free(pkt.size,pkt.ptr); + client_myds->setDSS_STATE_QUERY_SENT_NET(); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,1,1045,(char *)"#28000",(char *)"Command not supported"); + client_myds->DSS=STATE_SLEEP; + status=WAITING_CLIENT_DATA; + break; + } else { + // if we reach here, we are not on admin + bool rc_break=false; + + // Note: CurrentQuery sees the query as sent by the client. + // shortly after, the packets it used to contain the query will be deallocated + // Note2 : we call the next function as if it was _MYSQL_COM_QUERY + // because the offset will be identical + CurrentQuery.begin((unsigned char *)pkt.ptr,pkt.size,false); + + qpo=GloQPro->process_mysql_query(this,pkt.ptr,pkt.size,&CurrentQuery); + assert(qpo); // GloQPro->process_mysql_query() should always return a qpo + rc_break=handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(&pkt); + if (rc_break==true) { + } + } + break; // case _MYSQL_COM_STMT_PREPARE: // handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_STMT_PREPARE(&pkt); // break; @@ -1819,7 +1843,7 @@ void MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C -bool MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(PtrSize_t *pkt) { +bool MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(PtrSize_t *pkt, bool prepared) { if (qpo->new_query) { // the query was rewritten l_free(pkt->size,pkt->ptr); // free old pkt @@ -1849,6 +1873,11 @@ bool MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C RequestEnd(NULL); return true; } + + if (prepared) { // for prepared statement we exit here + return false; + } + if (mirror==true) { // for mirror session we exit here current_hostgroup=qpo->destination_hostgroup; return false; From d312d6f47933ad256027ed221b61a53109423268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 4 Jun 2016 11:57:45 +0000 Subject: [PATCH 05/13] Added a new dump client for internal testing only --- test/PrepStmt/Makefile | 3 + test/PrepStmt/client6.cpp | 341 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 344 insertions(+) create mode 100644 test/PrepStmt/client6.cpp diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile index 1bcd6bdb8..ebc960976 100644 --- a/test/PrepStmt/Makefile +++ b/test/PrepStmt/Makefile @@ -68,6 +68,9 @@ client4: client4.cpp client5: client5.cpp $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) +client6: client6.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + default: $(EXECUTABLE) diff --git a/test/PrepStmt/client6.cpp b/test/PrepStmt/client6.cpp new file mode 100644 index 000000000..20d502b8f --- /dev/null +++ b/test/PrepStmt/client6.cpp @@ -0,0 +1,341 @@ +#define PROXYSQL_EXTERN +#include "proxysql.h" +#include "cpp.h" + +#include +#include + +#define QUERY1 "SELECT ?" +#define NUMPREP 100000 +#define NUMPRO 20000 +//#define NUMPREP 160 +//#define NUMPRO 4 +#define LOOPS 1 +#define USER "root" +#define SCHEMA "test" + +#define NTHREADS 4 + +MySQL_STMT_Manager *GloMyStmt; +Query_Cache *GloQC; +MySQL_Authentication *GloMyAuth; +Query_Processor *GloQPro; +ProxySQL_Admin *GloAdmin; +MySQL_Threads_Handler *GloMTH; +MySQL_Monitor *GloMyMon; +std::thread *MyMon_thread; + +MySQL_Logger *GloMyLogger; + + +typedef struct _thread_data_t { + std::thread *thread; + MYSQL *mysql; + MYSQL_STMT **stmt; +} thread_data_t; + + +thread_data_t **GloThrData; + +struct cpu_timer +{ + ~cpu_timer() + { + auto end = std::clock() ; + std::cout << double( end - begin ) / CLOCKS_PER_SEC << " secs.\n" ; + }; + + const std::clock_t begin = std::clock() ; +}; + + +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[1]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + +void * mysql_thread(int tid) { + std::mt19937 mt_rand(time(0)); + + + thread_data_t *THD; + THD=GloThrData[tid]; + + MySQL_Thread *worker = new MySQL_Thread(); + worker->init(); + + MySrvC *mysrvc=new MySrvC((char *)"127.0.0.1", 3306, 100, MYSQL_SERVER_STATUS_ONLINE, 100, 0, 0, 0, 10000); + + { + int i; + MySQL_Session **SESS=(MySQL_Session **)malloc(16*sizeof(MySQL_Session *)); + + for (i=0; i<16; i++) { + SESS[i]=new MySQL_Session(); + MySQL_Session *sess=SESS[i]; + sess->mirror==true; + sess->client_myds=NULL; + sess->client_myds = new MySQL_Data_Stream(); + sess->client_myds->DSS=STATE_SLEEP; + sess->client_myds->sess=sess; + sess->client_myds->myds_type=MYDS_FRONTEND; + sess->client_myds->PSarrayOUT= new PtrSizeArray(); + worker->register_session(sess); + sess->current_hostgroup=0; + sess->default_hostgroup=0; + sess->mybe=sess->find_or_create_backend(sess->current_hostgroup); + MySQL_Connection *myconn=new MySQL_Connection(); + sess->mybe->server_myds->attach_connection(myconn); + myconn->userinfo->set((char *)"root",(char *)"",(char *)"information_schema"); + myconn->local_stmts = new MySQL_STMTs_local(); + //myconn->mysql=mysql_init(NULL); + myconn->parent=mysrvc; + /* + if (!mysql_real_connect(myconn->mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(myconn->mysql)); + exit(EXIT_FAILURE); + }*/ + myconn->handler(0); + if (myconn->mysql==NULL) { + myconn->handler(0); + } + } + for (i=0; i<16; i++) { + MySQL_Session *sess=SESS[i]; + sess->status=PROCESSING_QUERY; + sess->handler(); + } + } + +/* + // in this version, each mysql thread has just ONE connection + // for now we use blocking API + MYSQL *mysql; + + //MYSQL_STMT **stmt; + + // we intialize the local mapping : MySQL_STMTs_local() + MySQL_STMTs_local *local_stmts=new MySQL_STMTs_local(); + + // we initialize a MYSQL structure + THD->mysql = mysql_init(NULL); + mysql=THD->mysql; + + char buff[128]; + unsigned int bl=0; + + // we establish a connection to the database + if (!mysql_real_connect(mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + int i; + + // array of (MYSQL_STMT *) ; we don't use it in this version + //stmt=(MYSQL_STMT **)malloc(sizeof(MYSQL_STMT*)*NUMPREP); + + MYSQL_STMT *stmt; + { + cpu_timer t; + // in this loop we create only some the prepared statements + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a==NULL) { // no prepared statement was found in global + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); + local_stmts->insert(stmid,stmt); + } + } + fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", i, GloMyStmt->total_prepared_statements()); + fprintf(stdout, "Created in: "); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u random strings in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u hashes in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) founds++; + } + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } + + { + unsigned int founds=0; + unsigned int created=0; + unsigned int executed=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) { + // we have a prepared statement, we can run it + MYSQL_STMT *stm=local_stmts->find(a->statement_id); + if (stm) { // the statement exists in local + run_stmt(stm,(uint32_t)mt_rand()); + founds++; + executed++; + local_stmts->erase(a->statement_id); + } else { // the statement doesn't exist locally + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + local_stmts->insert(a->statement_id,stmt); + run_stmt(stmt,(uint32_t)mt_rand()); + created++; + executed++; + local_stmts->erase(a->statement_id); + } + } else { // no prepared statement was found in global + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); + local_stmts->insert(stmid,stmt); + run_stmt(stmt,(uint32_t)mt_rand()); + created++; + executed++; + local_stmts->erase(stmid); + } + } + fprintf(stdout, "Found %u , created %u and executed %u prepared statements in: ", founds, created, executed); + } +*/ +/* + { + // for comparison, we run also queries in TEXT protocol + cpu_timer t; + for (i=0; iinit(); + + // create a new MySQL_STMT_Manager() + GloMyStmt=new MySQL_STMT_Manager(); + GloThrData = (thread_data_t **)malloc(sizeof(thread_data_t *)*NTHREADS); + + // starts N threads + int i; + for (i=0; ithread = new std::thread(&mysql_thread,i); + } + while (glovars.shutdown==0) { + sleep(1); // FIXME: TERRIBLE UGLY + } + // wait for the threads to complete + for (i=0; ithread->join(); + } + return 0; +} From 3908d8202056ca029e73e5422c8211bfa453c9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 4 Jun 2016 12:12:20 +0000 Subject: [PATCH 06/13] More code in client6 --- test/PrepStmt/client6.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/PrepStmt/client6.cpp b/test/PrepStmt/client6.cpp index 20d502b8f..f2e2b12bc 100644 --- a/test/PrepStmt/client6.cpp +++ b/test/PrepStmt/client6.cpp @@ -88,6 +88,9 @@ void * mysql_thread(int tid) { MySQL_Thread *worker = new MySQL_Thread(); worker->init(); + char buff[128]; + unsigned int bl=0; + MySrvC *mysrvc=new MySrvC((char *)"127.0.0.1", 3306, 100, MYSQL_SERVER_STATUS_ONLINE, 100, 0, 0, 0, 10000); { @@ -103,6 +106,7 @@ void * mysql_thread(int tid) { sess->client_myds->DSS=STATE_SLEEP; sess->client_myds->sess=sess; sess->client_myds->myds_type=MYDS_FRONTEND; + sess->client_myds->PSarrayIN= new PtrSizeArray(); sess->client_myds->PSarrayOUT= new PtrSizeArray(); worker->register_session(sess); sess->current_hostgroup=0; @@ -126,7 +130,19 @@ void * mysql_thread(int tid) { } for (i=0; i<16; i++) { MySQL_Session *sess=SESS[i]; - sess->status=PROCESSING_QUERY; + sprintf(buff+5,"SELECT %u + ?",(uint32_t)mt_rand()%NUMPRO); + bl=strlen(buff+5); + mysql_hdr hdr; + hdr.pkt_id=0; + hdr.pkt_length=bl+1; + memcpy(buff,&hdr,sizeof(mysql_hdr)); + buff[4]=0x16; + PtrSize_t pkt; + pkt.size=hdr.pkt_length+sizeof(mysql_hdr); + pkt.ptr=malloc(pkt.size); + memcpy(pkt.ptr,buff,pkt.size); + sess->client_myds->PSarrayIN->add(pkt.ptr,pkt.size); + sess->status=WAITING_CLIENT_DATA;; sess->handler(); } } From 0ed51d61db1bc21920e9c6a805ef5118b6d5c0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 4 Jun 2016 13:44:04 +0000 Subject: [PATCH 07/13] Drafting MySQL_Protocol::generate_STMT_PREPARE_RESPONSE() --- include/MySQL_Protocol.h | 4 ++++ lib/MySQL_Protocol.cpp | 26 ++++++++++++++++++++++++++ lib/MySQL_Session.cpp | 15 +++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/include/MySQL_Protocol.h b/include/MySQL_Protocol.h index e38d7084b..3b8ec20c9 100644 --- a/include/MySQL_Protocol.h +++ b/include/MySQL_Protocol.h @@ -96,5 +96,9 @@ class MySQL_Protocol { bool process_pkt_handshake_response(unsigned char *pkt, unsigned int len); bool process_pkt_COM_QUERY(unsigned char *pkt, unsigned int len); bool process_pkt_COM_CHANGE_USER(unsigned char *pkt, unsigned int len); + + // prepared statements + bool generate_STMT_PREPARE_RESPONSE(uint8_t sequence_id, MySQL_STMT_Global_info *stmt_info); + }; #endif /* __CLASS_MYSQL_PROTOCOL_H */ diff --git a/lib/MySQL_Protocol.cpp b/lib/MySQL_Protocol.cpp index cf40acdac..8f261fb70 100644 --- a/lib/MySQL_Protocol.cpp +++ b/lib/MySQL_Protocol.cpp @@ -706,6 +706,32 @@ bool MySQL_Protocol::generate_pkt_field(bool send, void **ptr, unsigned int *len } +// FIXME FIXME function not completed yet! +// see https://dev.mysql.com/doc/internals/en/com-stmt-prepare-response.html +bool MySQL_Protocol::generate_STMT_PREPARE_RESPONSE(uint8_t sequence_id, MySQL_STMT_Global_info *stmt_info) { + uint8_t sid=sequence_id; + uint16_t i; + char *okpack=(char *)malloc(16); // first packet + mysql_hdr hdr; + hdr.pkt_id=sid; + hdr.pkt_length=12; + memcpy(okpack,&hdr,sizeof(mysql_hdr)); // copy header + okpack[4]=0; + okpack[13]=0; + memcpy(okpack+5,&stmt_info->statement_id,sizeof(uint32_t)); + memcpy(okpack+9,&stmt_info->num_columns,sizeof(uint16_t)); + memcpy(okpack+11,&stmt_info->num_params,sizeof(uint16_t)); + memcpy(okpack+14,&stmt_info->warning_count,sizeof(uint16_t)); + (*myds)->PSarrayOUT->add((void *)okpack,16); + sid++; + if (stmt_info->num_params) { + for (i=0; inum_params; i++) { + + } + } + return true; +} + bool MySQL_Protocol::generate_pkt_row(bool send, void **ptr, unsigned int *len, uint8_t sequence_id, int colnums, unsigned long *fieldslen, char **fieldstxt) { int col=0; int rowlen=0; diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index 9f905f8c6..58365768b 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -15,6 +15,7 @@ extern const CHARSET_INFO * proxysql_find_charset_name(const char * const name); extern MySQL_Authentication *GloMyAuth; extern ProxySQL_Admin *GloAdmin; extern MySQL_Logger *GloMyLogger; +extern MySQL_STMT_Manager *GloMyStmt; class KillArgs { public: @@ -803,6 +804,20 @@ __get_pkts_from_client: assert(qpo); // GloQPro->process_mysql_query() should always return a qpo rc_break=handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(&pkt); if (rc_break==true) { + break; + } + if (client_myds->myconn->local_stmts==NULL) { + client_myds->myconn->local_stmts=new MySQL_STMTs_local(); + } + uint64_t hash=client_myds->myconn->local_stmts->compute_hash(current_hostgroup,(char *)client_myds->myconn->userinfo->username,(char *)client_myds->myconn->userinfo->schemaname,(char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength); + MySQL_STMT_Global_info *stmt_info=GloMyStmt->find_prepared_statement_by_hash(hash); + if (stmt_info) { + l_free(pkt.size,pkt.ptr); + client_myds->setDSS_STATE_QUERY_SENT_NET(); + client_myds->myprot.generate_STMT_PREPARE_RESPONSE(client_myds->pkt_sid+1,stmt_info); + client_myds->DSS=STATE_SLEEP; + status=WAITING_CLIENT_DATA; + break; } } break; From 22dc1a017d2410dda4d533b3f405ccb1321314a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sun, 5 Jun 2016 00:14:29 +0000 Subject: [PATCH 08/13] Code to support STMT_PREPARE Variable mysql-stmt_multiplexing is introduced too, but not active --- include/MySQL_PreparedStatement.h | 28 +--- include/MySQL_Session.h | 4 + include/MySQL_Thread.h | 7 + include/mysql_connection.h | 8 +- include/proxysql_structs.h | 8 ++ lib/MySQL_PreparedStatement.cpp | 94 ++++++++++++- lib/MySQL_Protocol.cpp | 24 +++- lib/MySQL_Session.cpp | 219 ++++++++++++++++++++++++++++-- lib/MySQL_Thread.cpp | 82 +++++++++++ lib/mysql_connection.cpp | 67 ++++++++- test/PrepStmt/client1.cpp | 5 +- 11 files changed, 497 insertions(+), 49 deletions(-) diff --git a/include/MySQL_PreparedStatement.h b/include/MySQL_PreparedStatement.h index 3e6909c24..bbd0d00b9 100644 --- a/include/MySQL_PreparedStatement.h +++ b/include/MySQL_PreparedStatement.h @@ -55,28 +55,10 @@ class MySQL_STMT_Global_info { uint16_t num_columns; uint16_t num_params; uint16_t warning_count; - MySQL_STMT_Global_info(uint32_t id, unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, uint64_t _h) { - statement_id=id; - hostgroup_id=h; - ref_count=0; - username=strdup(u); - schemaname=strdup(s); - query=strdup(q); - query_length=ql; - num_params=stmt->param_count; - num_columns=stmt->field_count; - warning_count=stmt->upsert_status.warning_count; - if (_h) { - hash=_h; - } else { - compute_hash(); - } - } - ~MySQL_STMT_Global_info() { - free(username); - free(schemaname); - free(query); - } + MYSQL_FIELD **fields; + //MYSQL_BIND **params; // seems unused + MySQL_STMT_Global_info(uint32_t id, unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, uint64_t _h); + ~MySQL_STMT_Global_info(); }; class MySQL_STMT_Manager { @@ -89,7 +71,7 @@ class MySQL_STMT_Manager { MySQL_STMT_Manager(); ~MySQL_STMT_Manager(); int ref_count(uint32_t statement_id, int cnt, bool lock=true); - uint32_t add_prepared_statement(unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock=true); + MySQL_STMT_Global_info * add_prepared_statement(unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock=true); MySQL_STMT_Global_info * find_prepared_statement_by_stmt_id(uint32_t id, bool lock=true); MySQL_STMT_Global_info * find_prepared_statement_by_hash(uint64_t hash, bool lock=true); uint32_t total_prepared_statements() { return next_statement_id-1; } diff --git a/include/MySQL_Session.h b/include/MySQL_Session.h index 38b2e7721..59f00831b 100644 --- a/include/MySQL_Session.h +++ b/include/MySQL_Session.h @@ -23,6 +23,8 @@ class Query_Info { unsigned long long start_time; unsigned long long end_time; + MYSQL_STMT *mysql_stmt; + int QueryLength; enum MYSQL_COM_QUERY_command MyComQueryCmd; @@ -71,6 +73,8 @@ class MySQL_Session // void return_MySQL_Connection_To_Poll(MySQL_Data_Stream *); + MySQL_STMT_Manager *Session_STMT_Manager; + public: void * operator new(size_t); void operator delete(void *); diff --git a/include/MySQL_Thread.h b/include/MySQL_Thread.h index ba45dbb2c..550b816ba 100644 --- a/include/MySQL_Thread.h +++ b/include/MySQL_Thread.h @@ -161,6 +161,9 @@ class MySQL_Thread // in this way, there is no need for atomic operation and there is no cache miss // when it is needed a total, all threads are checked struct { + unsigned long long stmt_prepare; + unsigned long long stmt_execute; + unsigned long long stmt_close; unsigned long long queries; unsigned long long queries_slow; unsigned long long queries_backends_bytes_sent; @@ -282,6 +285,7 @@ class MySQL_Threads_Handler bool have_compress; bool client_found_rows; bool multiplexing; + bool stmt_multiplexing; bool enforce_autocommit_on_reads; int max_transaction_time; int threshold_query_length; @@ -341,6 +345,9 @@ class MySQL_Threads_Handler SQLite3_result * SQL3_Processlist(); SQLite3_result * SQL3_GlobalStatus(); bool kill_session(uint32_t _thread_session_id); + unsigned long long get_total_stmt_prepare(); + unsigned long long get_total_stmt_execute(); + unsigned long long get_total_stmt_close(); unsigned long long get_total_queries(); unsigned long long get_slow_queries(); unsigned long long get_queries_backends_bytes_recv(); diff --git a/include/mysql_connection.h b/include/mysql_connection.h index 4a4e380ae..238ca7d2e 100644 --- a/include/mysql_connection.h +++ b/include/mysql_connection.h @@ -46,6 +46,7 @@ class MySQL_Connection { struct { unsigned long length; char *ptr; + MYSQL_STMT *stmt; } query; char scramble_buff[40]; unsigned long long creation_time; @@ -123,8 +124,13 @@ class MySQL_Connection { int async_select_db(short event); int async_set_autocommit(short event, bool); int async_set_names(short event, uint8_t nr); - int async_query(short event, char *stmt, unsigned long length); + int async_query(short event, char *stmt, unsigned long length, MYSQL_STMT **_stmt=NULL); int async_ping(short event); + + void stmt_prepare_start(); + void stmt_prepare_cont(short event); + + void async_free_result(); bool IsActiveTransaction(); bool IsAutoCommit(); diff --git a/include/proxysql_structs.h b/include/proxysql_structs.h index c0184c80c..e8530d94b 100644 --- a/include/proxysql_structs.h +++ b/include/proxysql_structs.h @@ -54,6 +54,11 @@ enum MDB_ASYNC_ST { // MariaDB Async State Machine ASYNC_INITDB_END, ASYNC_INITDB_SUCCESSFUL, ASYNC_INITDB_FAILED, + ASYNC_STMT_PREPARE_START, + ASYNC_STMT_PREPARE_CONT, + ASYNC_STMT_PREPARE_END, + ASYNC_STMT_PREPARE_SUCCESSFUL, + ASYNC_STMT_PREPARE_FAILED, ASYNC_IDLE }; @@ -113,6 +118,7 @@ enum session_status { CHANGING_USER_CLIENT, CHANGING_USER_SERVER, FAST_FORWARD, + PROCESSING_STMT_PREPARE, NONE }; @@ -719,6 +725,7 @@ __thread int mysql_thread___poll_timeout_on_failure; __thread bool mysql_thread___have_compress; __thread bool mysql_thread___client_found_rows; __thread bool mysql_thread___multiplexing; +__thread bool mysql_thread___stmt_multiplexing; __thread bool mysql_thread___enforce_autocommit_on_reads; __thread bool mysql_thread___servers_stats; __thread bool mysql_thread___commands_stats; @@ -792,6 +799,7 @@ extern __thread int mysql_thread___poll_timeout_on_failure; extern __thread bool mysql_thread___have_compress; extern __thread bool mysql_thread___client_found_rows; extern __thread bool mysql_thread___multiplexing; +extern __thread bool mysql_thread___stmt_multiplexing; extern __thread bool mysql_thread___enforce_autocommit_on_reads; extern __thread bool mysql_thread___servers_stats; extern __thread bool mysql_thread___commands_stats; diff --git a/lib/MySQL_PreparedStatement.cpp b/lib/MySQL_PreparedStatement.cpp index d86a5f093..b2a9f5be4 100644 --- a/lib/MySQL_PreparedStatement.cpp +++ b/lib/MySQL_PreparedStatement.cpp @@ -117,8 +117,8 @@ int MySQL_STMT_Manager::ref_count(uint32_t statement_id, int cnt, bool lock) { return ret; } -uint32_t MySQL_STMT_Manager::add_prepared_statement(unsigned int _h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock) { - uint32_t ret=0; +MySQL_STMT_Global_info * MySQL_STMT_Manager::add_prepared_statement(unsigned int _h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock) { + MySQL_STMT_Global_info *ret=NULL; uint64_t hash=stmt_compute_hash(_h, u, s, q, ql); // this identifies the prepared statement if (lock) { spin_wrlock(&rwlock); @@ -127,15 +127,17 @@ uint32_t MySQL_STMT_Manager::add_prepared_statement(unsigned int _h, char *u, ch auto f = h.find(hash); if (f!=h.end()) { // found it! - MySQL_STMT_Global_info *a=f->second; - ret=a->statement_id; + //MySQL_STMT_Global_info *a=f->second; + //ret=a->statement_id; + ret=f->second; } else { // we need to create a new one MySQL_STMT_Global_info *a=new MySQL_STMT_Global_info(next_statement_id,_h,u,s,q,ql,stmt,hash); // insert it in both maps m.insert(std::make_pair(a->statement_id, a)); h.insert(std::make_pair(a->hash, a)); - ret=a->statement_id; + //ret=a->statement_id; + ret=a; next_statement_id++; // increment it } @@ -180,4 +182,86 @@ MySQL_STMT_Global_info * MySQL_STMT_Manager::find_prepared_statement_by_hash(uin return ret; } +MySQL_STMT_Global_info::MySQL_STMT_Global_info(uint32_t id, unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, uint64_t _h) { + statement_id=id; + hostgroup_id=h; + ref_count=0; + username=strdup(u); + schemaname=strdup(s); + query=strdup(q); + query_length=ql; + num_params=stmt->param_count; + num_columns=stmt->field_count; + warning_count=stmt->upsert_status.warning_count; + if (_h) { + hash=_h; + } else { + compute_hash(); + } + fields=NULL; + if (num_columns) { + fields=(MYSQL_FIELD **)malloc(num_columns*sizeof(MYSQL_FIELD *)); + uint16_t i; + for (i=0;ifields[i]); + MYSQL_FIELD *fd=fields[i]; + // first copy all fields + memcpy(fd,fs,sizeof(MYSQL_FIELD)); + // then duplicate strings + fd->name = ( fs->name ? strdup(fs->name) : NULL ); + fd->org_name = ( fs->org_name ? strdup(fs->org_name) : NULL ); + fd->table = ( fs->table ? strdup(fs->table) : NULL ); + fd->org_table = ( fs->org_table ? strdup(fs->org_table) : NULL ); + fd->db = ( fs->db ? strdup(fs->db) : NULL ); + fd->catalog = ( fs->catalog ? strdup(fs->catalog) : NULL ); + fd->def = ( fs->def ? strdup(fs->def) : NULL ); + } + } +/* + params=NULL; + if(num_params) { + params=(MYSQL_BIND **)malloc(num_columns*sizeof(MYSQL_BIND *)); + uint16_t i; + for (i=0;iparams[i]); + MYSQL_BIND *pd=params[i]; + // copy all params + memcpy(pd,ps,sizeof(MYSQL_BIND)); + } + } +*/ +} +MySQL_STMT_Global_info::~MySQL_STMT_Global_info() { + free(username); + free(schemaname); + free(query); + if (num_columns) { + uint16_t i; + for (i=0;iname) { free(f->name); f->name=NULL; } + if (f->org_name) { free(f->org_name); f->org_name=NULL; } + if (f->table) { free(f->table); f->table=NULL; } + if (f->org_table) { free(f->org_table); f->org_table=NULL; } + if (f->db) { free(f->db); f->db=NULL; } + if (f->catalog) { free(f->catalog); f->catalog=NULL; } + if (f->def) { free(f->def); f->def=NULL; } + free(fields[i]); + } + free(fields); + fields=NULL; + } +/* + if (num_params) { + uint16_t i; + for (i=0;iDSS=STATE_EOF2; break; default: - assert(0); + //assert(0); + break; } } if (len) { *len=size; } @@ -726,8 +727,27 @@ bool MySQL_Protocol::generate_STMT_PREPARE_RESPONSE(uint8_t sequence_id, MySQL_S sid++; if (stmt_info->num_params) { for (i=0; inum_params; i++) { - + generate_pkt_field(true,NULL,NULL,sid, + (char *)"", (char *)"", (char *)"", (char *)"", (char *)"", + 0,0,0,0,0,false,0,NULL); + sid++; + } + generate_pkt_EOF(true,NULL,NULL,sid,0,SERVER_STATUS_AUTOCOMMIT); // FIXME : for now we pass a very broken flag + sid++; + } + if (stmt_info->num_columns) { + for (i=0; inum_params; i++) { + MYSQL_FIELD *fd=stmt_info->fields[i]; + //bool MySQL_Protocol::generate_pkt_field(bool send, void **ptr, unsigned int *len, uint8_t sequence_id, char *schema, char *table, char *org_table, char *name, char *org_name, uint16_t charset, uint32_t column_length, uint8_t type, uint16_t flags, uint8_t decimals, bool field_list, uint64_t defvalue_length, char *defvalue) { + generate_pkt_field(true,NULL,NULL,sid, + fd->db, + fd->table, fd->org_table, + fd->name, fd->org_name, + fd->charsetnr, 0, fd->type, fd->flags, fd->decimals, false,0,NULL); + sid++; } + generate_pkt_EOF(true,NULL,NULL,sid,0,SERVER_STATUS_AUTOCOMMIT); // FIXME : for now we pass a very broken flag + sid++; } return true; } diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index 58365768b..48975cfed 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -93,6 +93,7 @@ void Query_Info::begin(unsigned char *_p, int len, bool mysql_header) { MyComQueryCmd=MYSQL_COM_QUERY___NONE; QueryPointer=NULL; QueryLength=0; + mysql_stmt=NULL; //QueryParserArgs=NULL; QueryParserArgs.digest_text=NULL; QueryParserArgs.first_comment=NULL; @@ -111,6 +112,7 @@ void Query_Info::end() { if ((end_time-start_time) > (unsigned int)mysql_thread___long_query_time*1000) { __sync_add_and_fetch(&sess->thread->status_variables.queries_slow,1); } + assert(mysql_stmt==NULL); } void Query_Info::init(unsigned char *_p, int len, bool mysql_header) { @@ -190,6 +192,7 @@ MySQL_Session::MySQL_Session() { thread_session_id=0; pause_until=0; qpo=NULL; + Session_STMT_Manager=NULL; start_time=0; command_counters=new StatCounters(15,10,false); healthy=1; @@ -250,6 +253,9 @@ MySQL_Session::~MySQL_Session() { if (admin==false && connections_handler==false && mirror==false) { __sync_fetch_and_sub(&MyHGM->status.client_connections,1); } + if (Session_STMT_Manager) { + delete Session_STMT_Manager; + } } @@ -791,6 +797,8 @@ __get_pkts_from_client: status=WAITING_CLIENT_DATA; break; } else { + thread->status_variables.stmt_prepare++; + thread->status_variables.queries++; // if we reach here, we are not on admin bool rc_break=false; @@ -806,11 +814,19 @@ __get_pkts_from_client: if (rc_break==true) { break; } + if (Session_STMT_Manager==NULL) { + Session_STMT_Manager = new MySQL_STMT_Manager(); + } if (client_myds->myconn->local_stmts==NULL) { client_myds->myconn->local_stmts=new MySQL_STMTs_local(); } uint64_t hash=client_myds->myconn->local_stmts->compute_hash(current_hostgroup,(char *)client_myds->myconn->userinfo->username,(char *)client_myds->myconn->userinfo->schemaname,(char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength); - MySQL_STMT_Global_info *stmt_info=GloMyStmt->find_prepared_statement_by_hash(hash); + MySQL_STMT_Global_info *stmt_info=NULL; + if (mysql_thread___stmt_multiplexing) { + stmt_info=GloMyStmt->find_prepared_statement_by_hash(hash); + } else { + stmt_info=Session_STMT_Manager->find_prepared_statement_by_hash(hash); + } if (stmt_info) { l_free(pkt.size,pkt.ptr); client_myds->setDSS_STATE_QUERY_SENT_NET(); @@ -818,6 +834,15 @@ __get_pkts_from_client: client_myds->DSS=STATE_SLEEP; status=WAITING_CLIENT_DATA; break; + } else { + mybe=find_or_create_backend(current_hostgroup); + status=PROCESSING_STMT_PREPARE; + mybe->server_myds->connect_retries_on_failure=mysql_thread___connect_retries_on_failure; + mybe->server_myds->wait_until=0; + pause_until=0; + mybe->server_myds->killed_at=0; + mybe->server_myds->mysql_real_query.init(&pkt); + client_myds->setDSS_STATE_QUERY_SENT_NET(); } } break; @@ -947,6 +972,7 @@ handler_again: } break; + case PROCESSING_STMT_PREPARE: case PROCESSING_QUERY: //fprintf(stderr,"PROCESSING_QUERY\n"); if (pause_until > thread->curtime) { @@ -983,7 +1009,17 @@ handler_again: } if (mybe->server_myds->DSS==STATE_NOT_INITIALIZED) { // we don't have a backend yet - previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CONNECTING_SERVER); } else { MySQL_Data_Stream *myds=mybe->server_myds; @@ -992,17 +1028,50 @@ handler_again: if (default_hostgroup>=0) { if (client_myds->myconn->userinfo->hash!=mybe->server_myds->myconn->userinfo->hash) { if (strcmp(client_myds->myconn->userinfo->username,myds->myconn->userinfo->username)) { - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CHANGING_USER_SERVER); } if (strcmp(client_myds->myconn->userinfo->schemaname,myds->myconn->userinfo->schemaname)) { - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CHANGING_SCHEMA); } } if (mirror==false) { // do not care about autocommit and charset if mirror if (client_myds->myconn->options.charset != mybe->server_myds->myconn->mysql->charset->nr) { - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CHANGING_CHARSET); } if (autocommit != mybe->server_myds->myconn->IsAutoCommit()) { @@ -1011,18 +1080,40 @@ handler_again: // enforce_autocommit_on_reads is disabled // we need to check if it is a SELECT not FOR UPDATE if (CurrentQuery.is_select_NOT_for_update()==false) { - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CHANGING_AUTOCOMMIT); } } else { // in every other cases, enforce autocommit - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CHANGING_AUTOCOMMIT); } } } } - status=PROCESSING_QUERY; + //status=PROCESSING_QUERY; mybe->server_myds->max_connect_time=0; // we insert it in mypolls only if not already there if (myds->mypolls==NULL) { @@ -1044,8 +1135,18 @@ handler_again: } } } - int rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize); - + int rc; + switch (status) { + case PROCESSING_QUERY: + rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize); + break; + case PROCESSING_STMT_PREPARE: + rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize,&CurrentQuery.mysql_stmt); + break; + default: + assert(0); + break; + } // if (myconn->async_state_machine==ASYNC_QUERY_END) { if (rc==0) { // FIXME: deprecate old MySQL_Result_to_MySQL_wire , not completed yet @@ -1061,7 +1162,45 @@ handler_again: if (myconn->mysql->insert_id) { last_insert_id=myconn->mysql->insert_id; } - MySQL_Result_to_MySQL_wire(myconn->mysql, myconn->MyRS); + + switch (status) { + case PROCESSING_QUERY: + MySQL_Result_to_MySQL_wire(myconn->mysql, myconn->MyRS); + break; + case PROCESSING_STMT_PREPARE: + { + uint32_t stmid; + MySQL_STMT_Global_info *stmt_info=NULL; + if (mysql_thread___stmt_multiplexing) { + stmt_info=GloMyStmt->add_prepared_statement(current_hostgroup, + (char *)client_myds->myconn->userinfo->username, + (char *)client_myds->myconn->userinfo->schemaname, + (char *)CurrentQuery.QueryPointer, + CurrentQuery.QueryLength, + CurrentQuery.mysql_stmt); + stmid=stmt_info->statement_id; + //uint64_t hash=client_myds->myconn->local_stmts->compute_hash(current_hostgroup,(char *)client_myds->myconn->userinfo->username,(char *)client_myds->myconn->userinfo->schemaname,(char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength); + } else { + //stmt_info=Session_STMT_Manager->find_prepared_statement_by_hash(hash); + stmt_info=Session_STMT_Manager->add_prepared_statement(current_hostgroup, + (char *)client_myds->myconn->userinfo->username, + (char *)client_myds->myconn->userinfo->schemaname, + (char *)CurrentQuery.QueryPointer, + CurrentQuery.QueryLength, + CurrentQuery.mysql_stmt, + false); + stmid=stmt_info->statement_id; + } + client_myds->myconn->local_stmts->insert(stmid,CurrentQuery.mysql_stmt); + client_myds->myprot.generate_STMT_PREPARE_RESPONSE(client_myds->pkt_sid+1,stmt_info); + } + CurrentQuery.mysql_stmt=NULL; + break; + default: + assert(0); + break; + } + // GloQPro->delete_QP_out(qpo); // qpo=NULL; // myconn->async_free_result(); @@ -1108,7 +1247,18 @@ handler_again: myds->fd=0; if (retry_conn) { myds->DSS=STATE_NOT_INITIALIZED; - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CONNECTING_SERVER); } return -1; @@ -1130,7 +1280,18 @@ handler_again: myds->fd=0; if (retry_conn) { myds->DSS=STATE_NOT_INITIALIZED; - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CONNECTING_SERVER); } return -1; @@ -1156,7 +1317,18 @@ handler_again: myds->fd=0; if (retry_conn) { myds->DSS=STATE_NOT_INITIALIZED; - previous_status.push(PROCESSING_QUERY); + //previous_status.push(PROCESSING_QUERY); + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + default: + assert(0); + break; + } NEXT_IMMEDIATE(CONNECTING_SERVER); } return -1; @@ -1165,7 +1337,24 @@ handler_again: break; // continue normally } - MySQL_Result_to_MySQL_wire(myconn->mysql, myconn->MyRS); + switch (status) { + case PROCESSING_QUERY: + MySQL_Result_to_MySQL_wire(myconn->mysql, myconn->MyRS); + break; + case PROCESSING_STMT_PREPARE: + //MySQL_Result_to_MySQL_wire(myconn->mysql, myconn->MyRS, true); + { + char sqlstate[10]; + sprintf(sqlstate,"#%s",mysql_sqlstate(myconn->mysql)); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,client_myds->pkt_sid+1,mysql_errno(myconn->mysql),sqlstate,(char *)mysql_stmt_error(myconn->query.stmt)); + client_myds->pkt_sid++; + } + break; + default: + assert(0); + break; + } +// MySQL_Result_to_MySQL_wire(myconn->mysql, myconn->MyRS); // CurrentQuery.end(); // GloQPro->delete_QP_out(qpo); // qpo=NULL; diff --git a/lib/MySQL_Thread.cpp b/lib/MySQL_Thread.cpp index d9d2b89fc..ad5bf940a 100644 --- a/lib/MySQL_Thread.cpp +++ b/lib/MySQL_Thread.cpp @@ -169,6 +169,7 @@ static char * mysql_thread_variables_names[]= { (char *)"monitor_writer_is_also_reader", (char *)"max_transaction_time", (char *)"multiplexing", + (char *)"stmt_multiplexing", (char *)"enforce_autocommit_on_reads", (char *)"threshold_query_length", (char *)"threshold_resultset_size", @@ -266,6 +267,7 @@ MySQL_Threads_Handler::MySQL_Threads_Handler() { variables.client_found_rows=true; variables.commands_stats=true; variables.multiplexing=true; + variables.stmt_multiplexing=false; variables.enforce_autocommit_on_reads=false; variables.query_digests=true; variables.sessions_sort=true; @@ -445,6 +447,7 @@ int MySQL_Threads_Handler::get_variable_int(char *name) { if (!strcasecmp(name,"have_compress")) return (int)variables.have_compress; if (!strcasecmp(name,"client_found_rows")) return (int)variables.client_found_rows; if (!strcasecmp(name,"multiplexing")) return (int)variables.multiplexing; + if (!strcasecmp(name,"stmt_multiplexing")) return (int)variables.stmt_multiplexing; if (!strcasecmp(name,"enforce_autocommit_on_reads")) return (int)variables.enforce_autocommit_on_reads; if (!strcasecmp(name,"commands_stats")) return (int)variables.commands_stats; if (!strcasecmp(name,"query_digests")) return (int)variables.query_digests; @@ -649,6 +652,9 @@ char * MySQL_Threads_Handler::get_variable(char *name) { // this is the public f if (!strcasecmp(name,"multiplexing")) { return strdup((variables.multiplexing ? "true" : "false")); } + if (!strcasecmp(name,"stmt_multiplexing")) { + return strdup((variables.stmt_multiplexing ? "true" : "false")); + } if (!strcasecmp(name,"enforce_autocommit_on_reads")) { return strdup((variables.enforce_autocommit_on_reads ? "true" : "false")); } @@ -1203,6 +1209,21 @@ bool MySQL_Threads_Handler::set_variable(char *name, char *value) { // this is t } return false; } + if (!strcasecmp(name,"stmt_multiplexing")) { +/* + // FIXME : for now, stmt_multiplexing cannot be enabled + // there is no code to handle it + if (strcasecmp(value,"true")==0 || strcasecmp(value,"1")==0) { + variables.stmt_multiplexing=true; + return true; + } +*/ + if (strcasecmp(value,"false")==0 || strcasecmp(value,"0")==0) { + variables.stmt_multiplexing=false; + return true; + } + return false; + } if (!strcasecmp(name,"enforce_autocommit_on_reads")) { if (strcasecmp(value,"true")==0 || strcasecmp(value,"1")==0) { variables.enforce_autocommit_on_reads=true; @@ -1948,6 +1969,7 @@ void MySQL_Thread::refresh_variables() { mysql_thread___have_compress=(bool)GloMTH->get_variable_int((char *)"have_compress"); mysql_thread___client_found_rows=(bool)GloMTH->get_variable_int((char *)"client_found_rows"); mysql_thread___multiplexing=(bool)GloMTH->get_variable_int((char *)"multiplexing"); + mysql_thread___stmt_multiplexing=(bool)GloMTH->get_variable_int((char *)"stmt_multiplexing"); mysql_thread___enforce_autocommit_on_reads=(bool)GloMTH->get_variable_int((char *)"enforce_autocommit_on_reads"); mysql_thread___commands_stats=(bool)GloMTH->get_variable_int((char *)"commands_stats"); mysql_thread___query_digests=(bool)GloMTH->get_variable_int((char *)"query_digests"); @@ -1983,6 +2005,9 @@ MySQL_Thread::MySQL_Thread() { last_maintenance_time=0; maintenance_loop=true; + status_variables.stmt_prepare=0; + status_variables.stmt_execute=0; + status_variables.stmt_close=0; status_variables.queries=0; status_variables.queries_slow=0; status_variables.queries_backends_bytes_sent=0; @@ -2131,6 +2156,24 @@ SQLite3_result * MySQL_Threads_Handler::SQL3_GlobalStatus() { pta[1]=buf; result->add_row(pta); } + { // stmt prepare + pta[0]=(char *)"Com_stmt_prepare"; + sprintf(buf,"%u",get_total_stmt_prepare()); + pta[1]=buf; + result->add_row(pta); + } + { // stmt execute + pta[0]=(char *)"Com_stmt_execute"; + sprintf(buf,"%u",get_total_stmt_execute()); + pta[1]=buf; + result->add_row(pta); + } + { // stmt prepare + pta[0]=(char *)"Com_stmt_close"; + sprintf(buf,"%u",get_total_stmt_close()); + pta[1]=buf; + result->add_row(pta); + } { // Queries pta[0]=(char *)"Questions"; sprintf(buf,"%llu",get_total_queries()); @@ -2351,6 +2394,45 @@ __exit_kill_session: return ret; } +unsigned long long MySQL_Threads_Handler::get_total_stmt_prepare() { + unsigned long long q=0; + unsigned int i; + for (i=0;istatus_variables.stmt_prepare,0); + } + } + return q; +} + +unsigned long long MySQL_Threads_Handler::get_total_stmt_execute() { + unsigned long long q=0; + unsigned int i; + for (i=0;istatus_variables.stmt_execute,0); + } + } + return q; +} + +unsigned long long MySQL_Threads_Handler::get_total_stmt_close() { + unsigned long long q=0; + unsigned int i; + for (i=0;istatus_variables.stmt_close,0); + } + } + return q; +} + unsigned long long MySQL_Threads_Handler::get_total_queries() { unsigned long long q=0; unsigned int i; diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 1d68c85d1..7a48deb13 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -157,6 +157,7 @@ MySQL_Connection::MySQL_Connection() { mysql_result=NULL; query.ptr=NULL; query.length=0; + query.stmt=NULL; largest_query_length=0; MyRS=NULL; creation_time=0; @@ -194,6 +195,10 @@ MySQL_Connection::~MySQL_Connection() { if (local_stmts) { delete local_stmts; } + if (query.stmt) { + mysql_stmt_close(query.stmt); + query.stmt=NULL; + } }; bool MySQL_Connection::set_autocommit(bool _ac) { @@ -401,6 +406,10 @@ void MySQL_Connection::set_query(char *stmt, unsigned long length) { if (length > largest_query_length) { largest_query_length=length; } + if (query.stmt) { + mysql_stmt_close(query.stmt); + query.stmt=NULL; + } //query.ptr=(char *)malloc(length); //memcpy(query.ptr,stmt,length); } @@ -415,6 +424,17 @@ void MySQL_Connection::real_query_cont(short event) { async_exit_status = mysql_real_query_cont(&interr ,mysql , mysql_status(event, true)); } +void MySQL_Connection::stmt_prepare_start() { + PROXY_TRACE(); + query.stmt=mysql_stmt_init(mysql); + async_exit_status = mysql_stmt_prepare_start(&interr , query.stmt, query.ptr, query.length); +} + +void MySQL_Connection::stmt_prepare_cont(short event) { + proxy_debug(PROXY_DEBUG_MYSQL_PROTOCOL, 6,"event=%d\n", event); + async_exit_status = mysql_stmt_prepare_cont(&interr , query.stmt , mysql_status(event, true)); +} + void MySQL_Connection::store_result_start() { PROXY_TRACE(); async_exit_status = mysql_store_result_start(&mysql_result, mysql); @@ -571,6 +591,38 @@ handler_again: } break; + case ASYNC_STMT_PREPARE_START: + stmt_prepare_start(); + __sync_fetch_and_add(&parent->queries_sent,1); + __sync_fetch_and_add(&parent->bytes_sent,query.length); + myds->sess->thread->status_variables.queries_backends_bytes_sent+=query.length; + if (async_exit_status) { + next_event(ASYNC_STMT_PREPARE_CONT); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_PREPARE_END); + } + break; + case ASYNC_STMT_PREPARE_CONT: + stmt_prepare_cont(event); + if (async_exit_status) { + next_event(ASYNC_STMT_PREPARE_CONT); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_PREPARE_END); + } + break; + + case ASYNC_STMT_PREPARE_END: + if (interr) { + NEXT_IMMEDIATE(ASYNC_STMT_PREPARE_FAILED); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_PREPARE_SUCCESSFUL); + } + break; + case ASYNC_STMT_PREPARE_SUCCESSFUL: + break; + case ASYNC_STMT_PREPARE_FAILED: + break; + case ASYNC_NEXT_RESULT_START: async_exit_status = mysql_next_result_start(&interr, mysql); if (async_exit_status) { @@ -841,7 +893,7 @@ int MySQL_Connection::async_connect(short event) { // 0 when the query is completed // 1 when the query is not completed // the calling function should check mysql error in mysql struct -int MySQL_Connection::async_query(short event, char *stmt, unsigned long length) { +int MySQL_Connection::async_query(short event, char *stmt, unsigned long length, MYSQL_STMT **_stmt) { PROXY_TRACE(); assert(mysql); assert(ret_mysql); @@ -860,6 +912,9 @@ int MySQL_Connection::async_query(short event, char *stmt, unsigned long length) case ASYNC_IDLE: set_query(stmt,length); async_state_machine=ASYNC_QUERY_START; + if (_stmt) { + async_state_machine=ASYNC_STMT_PREPARE_START; + } default: handler(event); break; @@ -872,6 +927,16 @@ int MySQL_Connection::async_query(short event, char *stmt, unsigned long length) return 0; } } + if (async_state_machine==ASYNC_STMT_PREPARE_SUCCESSFUL || async_state_machine==ASYNC_STMT_PREPARE_FAILED) { + if (async_state_machine==ASYNC_STMT_PREPARE_FAILED) { + //mysql_stmt_close(query.stmt); + //query.stmt=NULL; + return -1; + } else { + *_stmt=query.stmt; + return 0; + } + } if (async_state_machine==ASYNC_NEXT_RESULT_START) { // if we reached this point it measn we are processing a multi-statement // and we need to exit to give control to MySQL_Session diff --git a/test/PrepStmt/client1.cpp b/test/PrepStmt/client1.cpp index be3111c3d..910fcf78c 100644 --- a/test/PrepStmt/client1.cpp +++ b/test/PrepStmt/client1.cpp @@ -11,7 +11,8 @@ uint16_t warning_count; int main() { mysql = mysql_init(NULL); - if (!mysql_real_connect(mysql,"127.0.0.1","root","","test",3306,NULL,0)) { + if (!mysql_real_connect(mysql,"127.0.0.1","msandbox","msandbox","test",6033,NULL,0)) { + //if (!mysql_real_connect(mysql,"127.0.0.1","root","","test",3306,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); exit(EXIT_FAILURE); } @@ -21,7 +22,7 @@ int main() { exit(EXIT_FAILURE); } if (mysql_stmt_prepare(stmt, QUERY1, strlen(QUERY1))) { - fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + fprintf(stderr, " mysql_stmt_prepare(), failed: %d, %s\n" , mysql_errno(mysql), mysql_stmt_error(stmt)); exit(EXIT_FAILURE); } // param_count= mysql_stmt_param_count(stmt); From 18f273210da8e7dc69eb86abb60777f060fb0c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Tue, 7 Jun 2016 00:51:06 +0000 Subject: [PATCH 09/13] Drafting STMT_EXECUTE --- include/MySQL_PreparedStatement.h | 6 ++ include/MySQL_Protocol.h | 1 + include/proxysql_structs.h | 12 ++- lib/MySQL_PreparedStatement.cpp | 16 +++- lib/MySQL_Protocol.cpp | 135 +++++++++++++++++++++++++++++- lib/MySQL_Session.cpp | 77 ++++++++++++++++- lib/MySQL_Thread.cpp | 6 +- test/PrepStmt/client1.cpp | 41 ++++++++- 8 files changed, 283 insertions(+), 11 deletions(-) diff --git a/include/MySQL_PreparedStatement.h b/include/MySQL_PreparedStatement.h index bbd0d00b9..db9879be5 100644 --- a/include/MySQL_PreparedStatement.h +++ b/include/MySQL_PreparedStatement.h @@ -56,6 +56,11 @@ class MySQL_STMT_Global_info { uint16_t num_params; uint16_t warning_count; MYSQL_FIELD **fields; + struct { + int cache_ttl; + int timeout; + int delay; + } properties; //MYSQL_BIND **params; // seems unused MySQL_STMT_Global_info(uint32_t id, unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, uint64_t _h); ~MySQL_STMT_Global_info(); @@ -72,6 +77,7 @@ class MySQL_STMT_Manager { ~MySQL_STMT_Manager(); int ref_count(uint32_t statement_id, int cnt, bool lock=true); MySQL_STMT_Global_info * add_prepared_statement(unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock=true); + MySQL_STMT_Global_info * add_prepared_statement(unsigned int h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, int _cache_ttl, int _timeout, int _delay, bool lock=true); MySQL_STMT_Global_info * find_prepared_statement_by_stmt_id(uint32_t id, bool lock=true); MySQL_STMT_Global_info * find_prepared_statement_by_hash(uint64_t hash, bool lock=true); uint32_t total_prepared_statements() { return next_statement_id-1; } diff --git a/include/MySQL_Protocol.h b/include/MySQL_Protocol.h index 3b8ec20c9..fc9e14b6f 100644 --- a/include/MySQL_Protocol.h +++ b/include/MySQL_Protocol.h @@ -100,5 +100,6 @@ class MySQL_Protocol { // prepared statements bool generate_STMT_PREPARE_RESPONSE(uint8_t sequence_id, MySQL_STMT_Global_info *stmt_info); + stmt_execute_metadata_t * get_binds_from_pkt(void *ptr, unsigned int size, uint16_t num_params); }; #endif /* __CLASS_MYSQL_PROTOCOL_H */ diff --git a/include/proxysql_structs.h b/include/proxysql_structs.h index e8530d94b..33fb55fa2 100644 --- a/include/proxysql_structs.h +++ b/include/proxysql_structs.h @@ -119,6 +119,7 @@ enum session_status { CHANGING_USER_SERVER, FAST_FORWARD, PROCESSING_STMT_PREPARE, + PROCESSING_STMT_EXECUTE, NONE }; @@ -250,7 +251,7 @@ typedef struct _proxysql_mysql_thread_t proxysql_mysql_thread_t; typedef struct { char * table_name; char * table_def; } table_def_t; typedef struct __SQP_query_parser_t SQP_par_t; //typedef struct _mysql_server_t mysql_server_t; - +typedef struct _stmt_execute_metadata_t stmt_execute_metadata_t; #endif /* PROXYSQL_TYPEDEFS */ //#ifdef __cplusplus @@ -544,6 +545,15 @@ struct _mysql_session_t { }; +struct _stmt_execute_metadata_t { + uint32_t stmt_id; + uint8_t flags; + uint16_t num_params; + MYSQL_BIND *binds; + my_bool *is_nulls; + unsigned long *lengths; + void *pkt; +}; diff --git a/lib/MySQL_PreparedStatement.cpp b/lib/MySQL_PreparedStatement.cpp index b2a9f5be4..b6ca95937 100644 --- a/lib/MySQL_PreparedStatement.cpp +++ b/lib/MySQL_PreparedStatement.cpp @@ -118,6 +118,10 @@ int MySQL_STMT_Manager::ref_count(uint32_t statement_id, int cnt, bool lock) { } MySQL_STMT_Global_info * MySQL_STMT_Manager::add_prepared_statement(unsigned int _h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, bool lock) { + return add_prepared_statement(_h, u, s, q, ql, stmt, -1, -1, -1, lock); +} + +MySQL_STMT_Global_info * MySQL_STMT_Manager::add_prepared_statement(unsigned int _h, char *u, char *s, char *q, unsigned int ql, MYSQL_STMT *stmt, int _cache_ttl, int _timeout, int _delay, bool lock) { MySQL_STMT_Global_info *ret=NULL; uint64_t hash=stmt_compute_hash(_h, u, s, q, ql); // this identifies the prepared statement if (lock) { @@ -133,6 +137,9 @@ MySQL_STMT_Global_info * MySQL_STMT_Manager::add_prepared_statement(unsigned int } else { // we need to create a new one MySQL_STMT_Global_info *a=new MySQL_STMT_Global_info(next_statement_id,_h,u,s,q,ql,stmt,hash); + a->properties.cache_ttl=_cache_ttl; + a->properties.timeout=_timeout; + a->properties.delay=_delay; // insert it in both maps m.insert(std::make_pair(a->statement_id, a)); h.insert(std::make_pair(a->hash, a)); @@ -188,7 +195,8 @@ MySQL_STMT_Global_info::MySQL_STMT_Global_info(uint32_t id, unsigned int h, char ref_count=0; username=strdup(u); schemaname=strdup(s); - query=strdup(q); + query=(char *)malloc(ql); + memcpy(query,q,ql); query_length=ql; num_params=stmt->param_count; num_columns=stmt->field_count; @@ -198,6 +206,12 @@ MySQL_STMT_Global_info::MySQL_STMT_Global_info(uint32_t id, unsigned int h, char } else { compute_hash(); } + + // set default properties: + properties.cache_ttl=-1; + properties.timeout=-1; + properties.delay=-1; + fields=NULL; if (num_columns) { fields=(MYSQL_FIELD **)malloc(num_columns*sizeof(MYSQL_FIELD *)); diff --git a/lib/MySQL_Protocol.cpp b/lib/MySQL_Protocol.cpp index cda1e8b99..272749638 100644 --- a/lib/MySQL_Protocol.cpp +++ b/lib/MySQL_Protocol.cpp @@ -736,7 +736,7 @@ bool MySQL_Protocol::generate_STMT_PREPARE_RESPONSE(uint8_t sequence_id, MySQL_S sid++; } if (stmt_info->num_columns) { - for (i=0; inum_params; i++) { + for (i=0; inum_columns; i++) { MYSQL_FIELD *fd=stmt_info->fields[i]; //bool MySQL_Protocol::generate_pkt_field(bool send, void **ptr, unsigned int *len, uint8_t sequence_id, char *schema, char *table, char *org_table, char *name, char *org_name, uint16_t charset, uint32_t column_length, uint8_t type, uint16_t flags, uint8_t decimals, bool field_list, uint64_t defvalue_length, char *defvalue) { generate_pkt_field(true,NULL,NULL,sid, @@ -1321,6 +1321,139 @@ bool MySQL_Protocol::process_pkt_handshake_response(unsigned char *pkt, unsigned } +// See https://dev.mysql.com/doc/internals/en/com-stmt-execute.html for reference +stmt_execute_metadata_t * MySQL_Protocol::get_binds_from_pkt(void *ptr, unsigned int size, uint16_t num_params) { + stmt_execute_metadata_t *ret=NULL; //return NULL in case of failure + if (size<14) { + // some error! + return ret; + } + ret=(stmt_execute_metadata_t *)malloc(sizeof(stmt_execute_metadata_t)); + char *p=(char *)ptr+5; + memcpy(&ret->stmt_id,p,4); p+=4; // stmt-id + memcpy(&ret->flags,p,1); p+=1; // flags + p+=4; // iteration-count + ret->num_params=num_params; + ret->binds=NULL; + ret->pkt=ptr; + if (num_params) { + uint16_t i; + size_t null_bitmap_length=(num_params+7)/8; + if (size < (14+1+null_bitmap_length)) { + // some data missing? + free(ret); + return NULL; + } + uint8_t new_params_bound_flag; + memcpy(&new_params_bound_flag,p+null_bitmap_length,1); + if (new_params_bound_flag!=1) { + // something wrong + free(ret); + return NULL; + } + uint8_t *null_bitmap=(uint8_t *)malloc(null_bitmap_length); + memcpy(null_bitmap,p,null_bitmap_length); + p+=null_bitmap_length; + p+=1; // new_params_bound_flag + MYSQL_BIND *binds=(MYSQL_BIND *)malloc(sizeof(MYSQL_BIND)*num_params); + my_bool *is_nulls=(my_bool *)malloc(sizeof(my_bool)*num_params); + unsigned long *lengths=(unsigned long *)malloc(sizeof(unsigned long)*num_params); + for (i=0;i> idx; + is_nulls[i]=is_null; + binds[i].is_null=&is_nulls[i]; + // set buffer_type and is_unsigned + //enum enum_field_types buffer_type=MYSQL_TYPE_DECIMAL; // set a random default + uint16_t buffer_type=0; + memcpy(&buffer_type,p,2); + binds[i].is_unsigned=0; + if (buffer_type >= 32768) { // is_unsigned bit + buffer_type-=32768; + binds[i].is_unsigned=1; + } + binds[i].buffer_type=(enum enum_field_types)buffer_type; + p+=2; + + // set length + lengths[i]=0; +// unsigned long l=0; +// uint8_t ll=mysql_decode_length((unsigned char *)p,&l); +// lengths[i]=l; +// p+=ll; + binds[i].length=&lengths[i]; + + } + for (i=0;isetDSS_STATE_QUERY_SENT_NET(); @@ -806,7 +805,7 @@ __get_pkts_from_client: // shortly after, the packets it used to contain the query will be deallocated // Note2 : we call the next function as if it was _MYSQL_COM_QUERY // because the offset will be identical - CurrentQuery.begin((unsigned char *)pkt.ptr,pkt.size,false); + CurrentQuery.begin((unsigned char *)pkt.ptr,pkt.size,true); qpo=GloQPro->process_mysql_query(this,pkt.ptr,pkt.size,&CurrentQuery); assert(qpo); // GloQPro->process_mysql_query() should always return a qpo @@ -846,6 +845,66 @@ __get_pkts_from_client: } } break; + case _MYSQL_COM_STMT_EXECUTE: + if (admin==true) { // admin module will not support prepared statement!! + l_free(pkt.size,pkt.ptr); + client_myds->setDSS_STATE_QUERY_SENT_NET(); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,1,1045,(char *)"#28000",(char *)"Command not supported"); + client_myds->DSS=STATE_SLEEP; + status=WAITING_CLIENT_DATA; + break; + } else { + // if we reach here, we are not on admin + thread->status_variables.stmt_execute++; + thread->status_variables.queries++; + bool rc_break=false; + + uint32_t stmt_global_id=0; + memcpy(&stmt_global_id,(char *)pkt.ptr+5,sizeof(uint32_t)); + // now we get the statement information + MySQL_STMT_Global_info *stmt_info=NULL; + if (mysql_thread___stmt_multiplexing) { + stmt_info=GloMyStmt->find_prepared_statement_by_stmt_id(stmt_global_id); + } else { + stmt_info=Session_STMT_Manager->find_prepared_statement_by_stmt_id(stmt_global_id); + } + if (stmt_info==NULL) { + // we couldn't find it + l_free(pkt.size,pkt.ptr); + client_myds->setDSS_STATE_QUERY_SENT_NET(); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,1,1045,(char *)"#28000",(char *)"Prepared statement doesn't exist"); + client_myds->DSS=STATE_SLEEP; + status=WAITING_CLIENT_DATA; + break; + } + + stmt_execute_metadata_t *stmt_meta=client_myds->myprot.get_binds_from_pkt(pkt.ptr,pkt.size,stmt_info->num_params); + if (stmt_meta==NULL) { + l_free(pkt.size,pkt.ptr); + client_myds->setDSS_STATE_QUERY_SENT_NET(); + client_myds->myprot.generate_pkt_ERR(true,NULL,NULL,1,1045,(char *)"#28000",(char *)"Error in prepared statement execution"); + client_myds->DSS=STATE_SLEEP; + status=WAITING_CLIENT_DATA; + break; + } + // else + + CurrentQuery.begin((unsigned char *)stmt_info->query, stmt_info->query_length,false); + + qpo=GloQPro->process_mysql_query(this,pkt.ptr,pkt.size,&CurrentQuery); + assert(qpo); // GloQPro->process_mysql_query() should always return a qpo + // NOTE: we do not call YET the follow function for STMT_EXECUTE + //rc_break=handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(&pkt); + current_hostgroup=stmt_info->hostgroup_id; + mybe=find_or_create_backend(current_hostgroup); + status=PROCESSING_STMT_EXECUTE; + mybe->server_myds->connect_retries_on_failure=0; + mybe->server_myds->wait_until=0; + mybe->server_myds->killed_at=0; + mybe->server_myds->mysql_real_query.init(&pkt); + client_myds->setDSS_STATE_QUERY_SENT_NET(); + } + break; // case _MYSQL_COM_STMT_PREPARE: // handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_STMT_PREPARE(&pkt); // break; @@ -1177,7 +1236,11 @@ handler_again: (char *)client_myds->myconn->userinfo->schemaname, (char *)CurrentQuery.QueryPointer, CurrentQuery.QueryLength, - CurrentQuery.mysql_stmt); + CurrentQuery.mysql_stmt, + qpo->cache_ttl, + qpo->timeout, + qpo->delay, + true); stmid=stmt_info->statement_id; //uint64_t hash=client_myds->myconn->local_stmts->compute_hash(current_hostgroup,(char *)client_myds->myconn->userinfo->username,(char *)client_myds->myconn->userinfo->schemaname,(char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength); } else { @@ -1188,6 +1251,9 @@ handler_again: (char *)CurrentQuery.QueryPointer, CurrentQuery.QueryLength, CurrentQuery.mysql_stmt, + qpo->cache_ttl, + qpo->timeout, + qpo->delay, false); stmid=stmt_info->statement_id; } @@ -2079,7 +2145,7 @@ bool MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C } if (prepared) { // for prepared statement we exit here - return false; + goto __exit_set_destination_hostgroup; } if (mirror==true) { // for mirror session we exit here @@ -2116,6 +2182,9 @@ bool MySQL_Session::handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_C return true; } } + +__exit_set_destination_hostgroup: + if ( qpo->destination_hostgroup >= 0 ) { if (transaction_persistent_hostgroup == -1) { current_hostgroup=qpo->destination_hostgroup; diff --git a/lib/MySQL_Thread.cpp b/lib/MySQL_Thread.cpp index ad5bf940a..227153942 100644 --- a/lib/MySQL_Thread.cpp +++ b/lib/MySQL_Thread.cpp @@ -2158,19 +2158,19 @@ SQLite3_result * MySQL_Threads_Handler::SQL3_GlobalStatus() { } { // stmt prepare pta[0]=(char *)"Com_stmt_prepare"; - sprintf(buf,"%u",get_total_stmt_prepare()); + sprintf(buf,"%llu",get_total_stmt_prepare()); pta[1]=buf; result->add_row(pta); } { // stmt execute pta[0]=(char *)"Com_stmt_execute"; - sprintf(buf,"%u",get_total_stmt_execute()); + sprintf(buf,"%llu",get_total_stmt_execute()); pta[1]=buf; result->add_row(pta); } { // stmt prepare pta[0]=(char *)"Com_stmt_close"; - sprintf(buf,"%u",get_total_stmt_close()); + sprintf(buf,"%llu",get_total_stmt_close()); pta[1]=buf; result->add_row(pta); } diff --git a/test/PrepStmt/client1.cpp b/test/PrepStmt/client1.cpp index 910fcf78c..b1b197eaf 100644 --- a/test/PrepStmt/client1.cpp +++ b/test/PrepStmt/client1.cpp @@ -1,7 +1,7 @@ #include "proxysql.h" #include "cpp.h" -#define QUERY1 "SELECT ?" +#define QUERY1 "SELECT ? + ? + ?" MYSQL *mysql; MYSQL_STMT *stmt; uint32_t statement_id; @@ -9,7 +9,45 @@ uint16_t num_params; uint16_t num_columns; uint16_t warning_count; +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[3]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + bind[1].buffer_type= MYSQL_TYPE_LONG; + bind[1].buffer= (char *)&int_data; + bind[1].is_null= 0; + bind[1].length= 0; + bind[2].buffer_type= MYSQL_TYPE_LONG; + bind[2].buffer= (char *)&int_data; + bind[2].is_null= 0; + bind[2].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + int main() { + std::mt19937 mt_rand(time(0)); mysql = mysql_init(NULL); if (!mysql_real_connect(mysql,"127.0.0.1","msandbox","msandbox","test",6033,NULL,0)) { //if (!mysql_real_connect(mysql,"127.0.0.1","root","","test",3306,NULL,0)) { @@ -32,5 +70,6 @@ int main() { num_columns=stmt->field_count; warning_count=stmt->upsert_status.warning_count; fprintf(stdout, "statement_id=%d , columns=%d , params=%d , warnings=%d\n", statement_id, num_columns, num_params, warning_count); + run_stmt(stmt,(uint32_t)mt_rand()); return 0; } From 26a1b06f416f867efc75823227d2999cc261ca20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 6 Aug 2016 08:18:31 +0000 Subject: [PATCH 10/13] Fixing the compile for client5 --- .gitignore | 4 ++++ test/ChangeUser/.gitignore | 6 ++++++ test/PrepStmt/Makefile | 2 +- test/PrepStmt/client5.cpp | 8 ++++++-- test/encrypt/.gitignore | 6 ++++++ test/regextest/.gitignore | 6 ++++++ 6 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 test/ChangeUser/.gitignore create mode 100644 test/encrypt/.gitignore create mode 100644 test/regextest/.gitignore diff --git a/.gitignore b/.gitignore index 17dfe09f4..e6af4ccae 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,7 @@ architecture.txt #jemalloc source deps/jemalloc/jemalloc-3.6.0/ deps/jemalloc/jemalloc-4.1.0/ +deps/jemalloc/jemalloc-4.2.1/ #libdaemon deps/libdaemon/libdaemon-0.14/ @@ -100,3 +101,6 @@ deps/protobuf/protobuf-2.6.1/ test/.vagrant .DS_Store proxysql-tests.ini + +#heaptrack +heaptrack.* diff --git a/test/ChangeUser/.gitignore b/test/ChangeUser/.gitignore new file mode 100644 index 000000000..290524341 --- /dev/null +++ b/test/ChangeUser/.gitignore @@ -0,0 +1,6 @@ +client1 +client2 +client3 +client4 +client5 +client6 diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile index ebc960976..230871c82 100644 --- a/test/PrepStmt/Makefile +++ b/test/PrepStmt/Makefile @@ -35,7 +35,7 @@ LDIR=../../lib IDIRS=-I$(IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) $(LIBCONFIG_IDIR) -I$(DAEMONPATH_IDIR) -I$(SQLITE3_DIR) LDIRS=-L$(LDIR) -L$(JEMALLOC_LDIR) $(LIBCONFIG_LDIR) -L$(RE2_PATH)/obj -L$(LIBEVENT_LDIR) -L$(MARIADB_LDIR) -L$(DAEMONPATH_LDIR) - +DEBUG=-DDEBUG MYCPPFLAGS=-std=c++11 $(IDIRS) $(OPTZ) $(DEBUG) -ggdb LDFLAGS+= MYLIBS=-Wl,--export-dynamic -Wl,-Bstatic -lconfig -lproxysql -ldaemon -ljemalloc -lconfig++ -lre2 -levent -lmariadbclient -Wl,-Bdynamic -lpthread -lm -lz -lrt -lcrypto -lssl $(EXTRALINK) diff --git a/test/PrepStmt/client5.cpp b/test/PrepStmt/client5.cpp index 9c878cdf5..ae7932893 100644 --- a/test/PrepStmt/client5.cpp +++ b/test/PrepStmt/client5.cpp @@ -118,7 +118,9 @@ void * mysql_thread(int tid) { fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); exit(EXIT_FAILURE); } - uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + MySQL_STMT_Global_info *stmt_info=NULL; + stmt_info=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + uint32_t stmid=stmt_info->statement_id; if (NUMPRO < 32) fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); local_stmts->insert(stmid,stmt); @@ -208,7 +210,9 @@ void * mysql_thread(int tid) { fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); exit(EXIT_FAILURE); } - uint32_t stmid=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + MySQL_STMT_Global_info *stmt_info=NULL; + stmt_info=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + uint32_t stmid=stmt_info->statement_id; if (NUMPRO < 32) fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); local_stmts->insert(stmid,stmt); diff --git a/test/encrypt/.gitignore b/test/encrypt/.gitignore new file mode 100644 index 000000000..290524341 --- /dev/null +++ b/test/encrypt/.gitignore @@ -0,0 +1,6 @@ +client1 +client2 +client3 +client4 +client5 +client6 diff --git a/test/regextest/.gitignore b/test/regextest/.gitignore new file mode 100644 index 000000000..290524341 --- /dev/null +++ b/test/regextest/.gitignore @@ -0,0 +1,6 @@ +client1 +client2 +client3 +client4 +client5 +client6 From dc4bc5e3db5729e1e95e6a80bbdbe1507a2fe197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 6 Aug 2016 12:40:43 +0000 Subject: [PATCH 11/13] Adding some documentation/comment --- include/MySQL_PreparedStatement.h | 32 ++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/include/MySQL_PreparedStatement.h b/include/MySQL_PreparedStatement.h index db9879be5..600fecb57 100644 --- a/include/MySQL_PreparedStatement.h +++ b/include/MySQL_PreparedStatement.h @@ -4,8 +4,38 @@ #include "proxysql.h" #include "cpp.h" +/* +One of the main challenge in handling prepared statement (PS) is that a single +PS could be executed on multiple backends, and on each backend it could have a +different stmt_id. +For this reason ProxySQL returns to the client a stmt_id generated by the proxy +itself, and internally maps client's stmt_id with the backend stmt_id. -// class MySQL_STMTs_local assiciates a global statement ID with a local statement ID for a specific connection +The implementation in ProxySQL is, simplified, the follow: +* when a client sends a MYSQL_COM_STMT_PREPARE, ProxySQL executes it to one of + the backend +* the backend returns a stmt_id. This stmt_id is NOT returned to the client. The + stmt_id returned from the backend is stored in MySQL_STMTs_local(), and + MySQL_STMTs_local() is responsible for mapping the connection's MYSQL_STMT + and a global_stmt_id +* the global_stmt_id is the stmt_id returned to the client +* the global_stmt_id is used to locate the relevant MySQL_STMT_Global_info() in + MySQL_STMT_Manager() +* MySQL_STMT_Global_info() stores all metadata associated with a PS +* MySQL_STMT_Manager() is responsible for storing all MySQL_STMT_Global_info() + in global structures accessible and shareble by all threads. + +To summarie the most important classes: +* MySQL_STMT_Global_info() stores all metadata associated with a PS +* MySQL_STMT_Manager() stores all the MySQL_STMT_Global_info(), indexes using + a global_stmt_id that iis the stmt_id generated by ProxySQL and returned to + the client +* MySQL_STMTs_local() associate PS located in a backend connection to a + global_stmt_id +*/ + + +// class MySQL_STMTs_local associates a global statement ID with a local statement ID for a specific connection class MySQL_STMTs_local { private: unsigned int num_entries; From c0dde1a166fbb8c66df48aeace53fa7e9d3015a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 6 Aug 2016 14:41:11 +0000 Subject: [PATCH 12/13] Added client7 as another example --- test/PrepStmt/.gitignore | 1 + test/PrepStmt/Makefile | 3 + test/PrepStmt/client7.cpp | 369 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 373 insertions(+) create mode 100644 test/PrepStmt/client7.cpp diff --git a/test/PrepStmt/.gitignore b/test/PrepStmt/.gitignore index 290524341..c76b1d9d9 100644 --- a/test/PrepStmt/.gitignore +++ b/test/PrepStmt/.gitignore @@ -4,3 +4,4 @@ client3 client4 client5 client6 +client7 diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile index 230871c82..0b0615a3f 100644 --- a/test/PrepStmt/Makefile +++ b/test/PrepStmt/Makefile @@ -71,6 +71,9 @@ client5: client5.cpp client6: client6.cpp $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) +client7: client7.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + default: $(EXECUTABLE) diff --git a/test/PrepStmt/client7.cpp b/test/PrepStmt/client7.cpp new file mode 100644 index 000000000..470669a73 --- /dev/null +++ b/test/PrepStmt/client7.cpp @@ -0,0 +1,369 @@ +/* +this is a modified version of client5.cpp +that supports async calls +*/ + + + +#include "proxysql.h" +#include "cpp.h" + +#include +#include + +#define QUERY1 "SELECT ?" +#define NUMPREP 100000 +#define NUMPRO 20000 +//#define NUMPREP 160 +//#define NUMPRO 4 +#define LOOPS 1 +#define USER "root" +#define SCHEMA "test" + +#define NTHREADS 4 + +static int wait_for_mysql(MYSQL *mysql, int status) { + struct pollfd pfd; + int timeout, res; + + pfd.fd = mysql_get_socket(mysql); + pfd.events = + (status & MYSQL_WAIT_READ ? POLLIN : 0) | + (status & MYSQL_WAIT_WRITE ? POLLOUT : 0) | + (status & MYSQL_WAIT_EXCEPT ? POLLPRI : 0); +// if (status & MYSQL_WAIT_TIMEOUT) +// timeout = 1000*mysql_get_timeout_value(mysql); +// else + timeout = -1; + res = poll(&pfd, 1, timeout); + if (res == 0) + return MYSQL_WAIT_TIMEOUT; + else if (res < 0) + return MYSQL_WAIT_TIMEOUT; + else { + int status = 0; + if (pfd.revents & POLLIN) status |= MYSQL_WAIT_READ; + if (pfd.revents & POLLOUT) status |= MYSQL_WAIT_WRITE; + if (pfd.revents & POLLPRI) status |= MYSQL_WAIT_EXCEPT; + return status; + } +} + + + + + +MySQL_STMT_Manager *GloMyStmt; + +typedef struct _thread_data_t { + std::thread *thread; + MYSQL *mysql; + MYSQL_STMT **stmt; +} thread_data_t; + + +thread_data_t **GloThrData; + +struct cpu_timer +{ + ~cpu_timer() + { + auto end = std::clock() ; + std::cout << double( end - begin ) / CLOCKS_PER_SEC << " secs.\n" ; + }; + + const std::clock_t begin = std::clock() ; +}; + + +int run_stmt(MYSQL *mysql, MYSQL_STMT *stmt, int int_data) { + int async_exit_status=0; + int ret_int; + MYSQL_BIND bind[1]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check +/* blocking + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +*/ + async_exit_status=mysql_stmt_execute_start(&ret_int, stmt); + while (async_exit_status) { + async_exit_status=wait_for_mysql(mysql, async_exit_status); + async_exit_status=mysql_stmt_execute_cont(&ret_int, stmt, async_exit_status); + } + if (ret_int) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + async_exit_status=mysql_stmt_store_result_start(&ret_int, stmt); + while (async_exit_status) { + async_exit_status=wait_for_mysql(mysql, async_exit_status); + async_exit_status=mysql_stmt_store_result_cont(&ret_int, stmt, async_exit_status); + } + if (ret_int) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + +void * mysql_thread(int tid) { + std::mt19937 mt_rand(time(0)); + + thread_data_t *THD; + THD=GloThrData[tid]; + + // in this version, each mysql thread has just ONE connection + // for now we use blocking API + MYSQL *mysql; + + //MYSQL_STMT **stmt; + + // we intialize the local mapping : MySQL_STMTs_local() + MySQL_STMTs_local *local_stmts=new MySQL_STMTs_local(); + + // we initialize a MYSQL structure + THD->mysql = mysql_init(NULL); + mysql=THD->mysql; + + char buff[128]; + unsigned int bl=0; + + // we establish a connection to the database + if (!mysql_real_connect(mysql,"127.0.0.1",USER,"",SCHEMA,3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + int i; + //set not blocking + mysql_options(mysql, MYSQL_OPT_NONBLOCK, 0); + int async_exit_status=0; + int ret_int; + // array of (MYSQL_STMT *) ; we don't use it in this version + //stmt=(MYSQL_STMT **)malloc(sizeof(MYSQL_STMT*)*NUMPREP); + + MYSQL_STMT *stmt; + { + cpu_timer t; + // in this loop we create only some the prepared statements + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a==NULL) { // no prepared statement was found in global + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } +/* blocking call + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +*/ + async_exit_status=mysql_stmt_prepare_start(&ret_int, stmt, buff, bl); + while (async_exit_status) { + async_exit_status=wait_for_mysql(mysql, async_exit_status); + async_exit_status=mysql_stmt_prepare_cont(&ret_int, stmt, async_exit_status); + } + if (ret_int) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + + MySQL_STMT_Global_info *stmt_info=NULL; + stmt_info=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + uint32_t stmid=stmt_info->statement_id; + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); + local_stmts->insert(stmid,stmt); + } + } + fprintf(stdout, "Prepared statements: %u client, %u proxy/server. ", i, GloMyStmt->total_prepared_statements()); + fprintf(stdout, "Created in: "); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u random strings in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + //MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + //if (a) founds++; + } + fprintf(stdout, "Computed %u hashes in: ", i); + } + { + unsigned int founds=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) founds++; + } + fprintf(stdout, "Found %u prepared statements searching by hash in: ", founds); + } + + { + unsigned int founds=0; + unsigned int created=0; + unsigned int executed=0; + cpu_timer t; + for (i=0; icompute_hash(0,(char *)USER,(char *)SCHEMA,buff,bl); + MySQL_STMT_Global_info *a=GloMyStmt->find_prepared_statement_by_hash(hash); + if (a) { + // we have a prepared statement, we can run it + MYSQL_STMT *stm=local_stmts->find(a->statement_id); + if (stm) { // the statement exists in local + run_stmt(mysql, stm,(uint32_t)mt_rand()); + founds++; + executed++; + local_stmts->erase(a->statement_id); + } else { // the statement doesn't exist locally + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } +/* blocking + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +*/ + async_exit_status=mysql_stmt_prepare_start(&ret_int, stmt, buff, bl); + while (async_exit_status) { + async_exit_status=wait_for_mysql(mysql, async_exit_status); + async_exit_status=mysql_stmt_prepare_cont(&ret_int, stmt, async_exit_status); + } + if (ret_int) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + local_stmts->insert(a->statement_id,stmt); + run_stmt(mysql, stmt,(uint32_t)mt_rand()); + created++; + executed++; + local_stmts->erase(a->statement_id); + } + } else { // no prepared statement was found in global + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } +/* blocking + if (mysql_stmt_prepare(stmt, buff, bl)) { // the prepared statement is created + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +*/ + async_exit_status=mysql_stmt_prepare_start(&ret_int, stmt, buff, bl); + while (async_exit_status) { + async_exit_status=wait_for_mysql(mysql, async_exit_status); + async_exit_status=mysql_stmt_prepare_cont(&ret_int, stmt, async_exit_status); + } + if (ret_int) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %s\n" , mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + MySQL_STMT_Global_info *stmt_info=NULL; + stmt_info=GloMyStmt->add_prepared_statement(0,(char *)USER,(char *)SCHEMA,buff,bl,stmt); + uint32_t stmid=stmt_info->statement_id; + if (NUMPRO < 32) + fprintf(stdout, "SERVER_statement_id=%lu , PROXY_statement_id=%u\n", stmt->stmt_id, stmid); + local_stmts->insert(stmid,stmt); + run_stmt(mysql, stmt,(uint32_t)mt_rand()); + created++; + executed++; + local_stmts->erase(stmid); + } + } + fprintf(stdout, "Found %u , created %u and executed %u prepared statements in: ", founds, created, executed); + } +/* + { + // for comparison, we run also queries in TEXT protocol + cpu_timer t; + for (i=0; ithread = new std::thread(&mysql_thread,i); + } + // wait for the threads to complete + for (i=0; ithread->join(); + } + return 0; +} From 604fa378d2e487f1ad11c29c298c086c16be3ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sun, 7 Aug 2016 09:56:48 +0000 Subject: [PATCH 13/13] A lot of experimental code for prepared statements --- include/MySQL_Protocol.h | 28 +++++++- include/MySQL_Session.h | 5 +- include/MySQL_Thread.h | 2 +- include/mysql_connection.h | 7 +- include/proxysql_structs.h | 15 +++-- lib/MySQL_Protocol.cpp | 111 +++++++++++++++++++++++++++++-- lib/MySQL_Session.cpp | 130 +++++++++++++++++++++++++++++-------- lib/MySQL_Thread.cpp | 28 ++++---- lib/mysql_connection.cpp | 119 +++++++++++++++++++++++++++++++-- test/PrepStmt/Makefile | 3 + test/PrepStmt/client8 | Bin 0 -> 1532587 bytes test/PrepStmt/client8.cpp | 79 ++++++++++++++++++++++ 12 files changed, 470 insertions(+), 57 deletions(-) create mode 100755 test/PrepStmt/client8 create mode 100644 test/PrepStmt/client8.cpp diff --git a/include/MySQL_Protocol.h b/include/MySQL_Protocol.h index fc9e14b6f..4cf72e6f1 100644 --- a/include/MySQL_Protocol.h +++ b/include/MySQL_Protocol.h @@ -4,6 +4,31 @@ #include "proxysql.h" #include "cpp.h" +class stmt_execute_metadata_t { + public: + uint32_t stmt_id; + uint8_t flags; + uint16_t num_params; + MYSQL_BIND *binds; + my_bool *is_nulls; + unsigned long *lengths; + void *pkt; + stmt_execute_metadata_t() { + binds=NULL; + is_nulls=NULL; + lengths=NULL; + pkt=NULL; + } + ~stmt_execute_metadata_t() { + if (binds) + free(binds); + if (is_nulls) + free(is_nulls); + if (lengths) + free(lengths); + } +}; + class MySQL_ResultSet { private: public: @@ -18,9 +43,10 @@ class MySQL_ResultSet { unsigned int num_rows; unsigned long long resultset_size; PtrSizeArray *PSarrayOUT; - MySQL_ResultSet(MySQL_Protocol *_myprot, MYSQL_RES *_res, MYSQL *_my); + MySQL_ResultSet(MySQL_Protocol *_myprot, MYSQL_RES *_res, MYSQL *_my, MYSQL_STMT *_stmt=NULL); ~MySQL_ResultSet(); unsigned int add_row(MYSQL_ROW row); + unsigned int add_row2(MYSQL_ROWS *row, unsigned char *offset); void add_eof(); bool get_resultset(PtrSizeArray *PSarrayFinal); unsigned char *buffer; diff --git a/include/MySQL_Session.h b/include/MySQL_Session.h index 59f00831b..12b5daa05 100644 --- a/include/MySQL_Session.h +++ b/include/MySQL_Session.h @@ -24,6 +24,8 @@ class Query_Info { unsigned long long end_time; MYSQL_STMT *mysql_stmt; + stmt_execute_metadata_t *stmt_meta; + uint32_t stmt_global_id; int QueryLength; enum MYSQL_COM_QUERY_command MyComQueryCmd; @@ -73,7 +75,7 @@ class MySQL_Session // void return_MySQL_Connection_To_Poll(MySQL_Data_Stream *); - MySQL_STMT_Manager *Session_STMT_Manager; +// MySQL_STMT_Manager *Session_STMT_Manager; public: void * operator new(size_t); @@ -153,6 +155,7 @@ class MySQL_Session void SQLite3_to_MySQL(SQLite3_result *, char *, int , MySQL_Protocol *); void MySQL_Result_to_MySQL_wire(MYSQL *mysql, MySQL_ResultSet *MyRS); + void MySQL_Stmt_Result_to_MySQL_wire(MYSQL_STMT *stmt); unsigned int NumActiveTransactions(); int FindOneActiveTransaction(); unsigned long long IdleTime(); diff --git a/include/MySQL_Thread.h b/include/MySQL_Thread.h index 550b816ba..b251aa5a3 100644 --- a/include/MySQL_Thread.h +++ b/include/MySQL_Thread.h @@ -285,7 +285,7 @@ class MySQL_Threads_Handler bool have_compress; bool client_found_rows; bool multiplexing; - bool stmt_multiplexing; +// bool stmt_multiplexing; bool enforce_autocommit_on_reads; int max_transaction_time; int threshold_query_length; diff --git a/include/mysql_connection.h b/include/mysql_connection.h index 238ca7d2e..9d3ab6c48 100644 --- a/include/mysql_connection.h +++ b/include/mysql_connection.h @@ -47,6 +47,7 @@ class MySQL_Connection { unsigned long length; char *ptr; MYSQL_STMT *stmt; + stmt_execute_metadata_t *stmt_meta; } query; char scramble_buff[40]; unsigned long long creation_time; @@ -124,11 +125,15 @@ class MySQL_Connection { int async_select_db(short event); int async_set_autocommit(short event, bool); int async_set_names(short event, uint8_t nr); - int async_query(short event, char *stmt, unsigned long length, MYSQL_STMT **_stmt=NULL); + int async_query(short event, char *stmt, unsigned long length, MYSQL_STMT **_stmt=NULL, stmt_execute_metadata_t *_stmt_meta=NULL); int async_ping(short event); void stmt_prepare_start(); void stmt_prepare_cont(short event); + void stmt_execute_start(); + void stmt_execute_cont(short event); + void stmt_execute_store_result_start(); + void stmt_execute_store_result_cont(short event); void async_free_result(); diff --git a/include/proxysql_structs.h b/include/proxysql_structs.h index 33fb55fa2..5950d87b0 100644 --- a/include/proxysql_structs.h +++ b/include/proxysql_structs.h @@ -59,6 +59,11 @@ enum MDB_ASYNC_ST { // MariaDB Async State Machine ASYNC_STMT_PREPARE_END, ASYNC_STMT_PREPARE_SUCCESSFUL, ASYNC_STMT_PREPARE_FAILED, + ASYNC_STMT_EXECUTE_START, + ASYNC_STMT_EXECUTE_CONT, + ASYNC_STMT_EXECUTE_STORE_RESULT_START, + ASYNC_STMT_EXECUTE_STORE_RESULT_CONT, + ASYNC_STMT_EXECUTE_END, ASYNC_IDLE }; @@ -251,7 +256,7 @@ typedef struct _proxysql_mysql_thread_t proxysql_mysql_thread_t; typedef struct { char * table_name; char * table_def; } table_def_t; typedef struct __SQP_query_parser_t SQP_par_t; //typedef struct _mysql_server_t mysql_server_t; -typedef struct _stmt_execute_metadata_t stmt_execute_metadata_t; +//typedef struct _stmt_execute_metadata_t stmt_execute_metadata_t; #endif /* PROXYSQL_TYPEDEFS */ //#ifdef __cplusplus @@ -281,6 +286,7 @@ class ProxySQL_ConfigFile; class Query_Info; //class MySQL_Server; class SQLite3_result; +class stmt_execute_metadata_t; //class MySQL_Servers; //class MySQL_Hostgroup_Entry; //class MySQL_Hostgroup; @@ -545,6 +551,7 @@ struct _mysql_session_t { }; +/* struct _stmt_execute_metadata_t { uint32_t stmt_id; uint8_t flags; @@ -554,7 +561,7 @@ struct _stmt_execute_metadata_t { unsigned long *lengths; void *pkt; }; - +*/ #endif /* PROXYSQL_STRUCTS */ @@ -735,7 +742,7 @@ __thread int mysql_thread___poll_timeout_on_failure; __thread bool mysql_thread___have_compress; __thread bool mysql_thread___client_found_rows; __thread bool mysql_thread___multiplexing; -__thread bool mysql_thread___stmt_multiplexing; +// __thread bool mysql_thread___stmt_multiplexing; __thread bool mysql_thread___enforce_autocommit_on_reads; __thread bool mysql_thread___servers_stats; __thread bool mysql_thread___commands_stats; @@ -809,7 +816,7 @@ extern __thread int mysql_thread___poll_timeout_on_failure; extern __thread bool mysql_thread___have_compress; extern __thread bool mysql_thread___client_found_rows; extern __thread bool mysql_thread___multiplexing; -extern __thread bool mysql_thread___stmt_multiplexing; +// extern __thread bool mysql_thread___stmt_multiplexing; extern __thread bool mysql_thread___enforce_autocommit_on_reads; extern __thread bool mysql_thread___servers_stats; extern __thread bool mysql_thread___commands_stats; diff --git a/lib/MySQL_Protocol.cpp b/lib/MySQL_Protocol.cpp index 272749638..13e11189e 100644 --- a/lib/MySQL_Protocol.cpp +++ b/lib/MySQL_Protocol.cpp @@ -1328,27 +1328,30 @@ stmt_execute_metadata_t * MySQL_Protocol::get_binds_from_pkt(void *ptr, unsigned // some error! return ret; } - ret=(stmt_execute_metadata_t *)malloc(sizeof(stmt_execute_metadata_t)); + //ret=(stmt_execute_metadata_t *)malloc(sizeof(stmt_execute_metadata_t)); + ret= new stmt_execute_metadata_t(); char *p=(char *)ptr+5; memcpy(&ret->stmt_id,p,4); p+=4; // stmt-id memcpy(&ret->flags,p,1); p+=1; // flags p+=4; // iteration-count ret->num_params=num_params; - ret->binds=NULL; +// ret->binds=NULL; +// ret->is_nulls=NULL; +// ret->lengths=NULL; ret->pkt=ptr; if (num_params) { uint16_t i; size_t null_bitmap_length=(num_params+7)/8; if (size < (14+1+null_bitmap_length)) { // some data missing? - free(ret); + delete ret; return NULL; } uint8_t new_params_bound_flag; memcpy(&new_params_bound_flag,p+null_bitmap_length,1); if (new_params_bound_flag!=1) { // something wrong - free(ret); + delete ret; return NULL; } uint8_t *null_bitmap=(uint8_t *)malloc(null_bitmap_length); @@ -1358,6 +1361,9 @@ stmt_execute_metadata_t * MySQL_Protocol::get_binds_from_pkt(void *ptr, unsigned MYSQL_BIND *binds=(MYSQL_BIND *)malloc(sizeof(MYSQL_BIND)*num_params); my_bool *is_nulls=(my_bool *)malloc(sizeof(my_bool)*num_params); unsigned long *lengths=(unsigned long *)malloc(sizeof(unsigned long)*num_params); + ret->binds=binds; + ret->is_nulls=is_nulls; + ret->lengths=lengths; for (i=0;iadd(pkt.ptr,pkt.size); resultset_size+=pkt.size; + if (_stmt) { // binary protocol , we also assume we have ALL the resultset + //MYSQL_RES * prepare_meta_result = mysql_stmt_result_metadata(_stmt); +// int column_count=mysql_num_fields(prepare_meta_result); +// MYSQL_BIND *binds=(MYSQL_BIND *)malloc(sizeof(MYSQL_BIND)*column_count); +// mysql_stmt_bind_result(_stmt, binds); + fprintf(stdout, "Fetching results ...\n"); +// int row_count=0; +// while (!mysql_stmt_fetch(_stmt)) { +// row_count++; +// fprintf(stdout, " row %d\n", row_count); +// } +// free (binds); + unsigned long long total_size=0; + MYSQL_ROWS *r=_stmt->result.data; + total_size+=r->length; + if (r->length > 0xFFFFFF) { + total_size+=(r->length / 0xFFFFFF) * sizeof(mysql_hdr); + } + total_size+=sizeof(mysql_hdr); + while(r->next) { + r=r->next; + total_size+=r->length; + if (r->length > 0xFFFFFF) { + total_size+=(r->length / 0xFFFFFF) * sizeof(mysql_hdr); + } + total_size+=sizeof(mysql_hdr); + } + PtrSize_t pkt; + pkt.size=total_size; + pkt.ptr=malloc(pkt.size); + total_size=0; + r=_stmt->result.data; + add_row2(r,(unsigned char *)pkt.ptr); + total_size+=r->length; + if (r->length > 0xFFFFFF) { + total_size+=(r->length / 0xFFFFFF) * sizeof(mysql_hdr); + } + total_size+=sizeof(mysql_hdr); + while(r->next) { + r=r->next; + add_row2(r,(unsigned char *)pkt.ptr+total_size); + total_size+=r->length; + if (r->length > 0xFFFFFF) { + total_size+=(r->length / 0xFFFFFF) * sizeof(mysql_hdr); + } + total_size+=sizeof(mysql_hdr); + } + PSarrayOUT->add(pkt.ptr,pkt.size); + resultset_size+=pkt.size; + add_eof(); + } } @@ -1536,6 +1593,50 @@ unsigned int MySQL_ResultSet::add_row(MYSQL_ROW row) { return pkt_length; } +// add_row2 is perhaps a faster implementation of add_row() +// still experimentatl +// so far, used only for prepared statements +// it assumes that the MYSQL_ROW is an format ready to be sent to the client +unsigned int MySQL_ResultSet::add_row2(MYSQL_ROWS *row, unsigned char *offset) { + unsigned long length=row->length; + + uint8_t pkt_sid=sid; + if (length < (0xFFFFFF+sizeof(mysql_hdr))) { + mysql_hdr myhdr; + myhdr.pkt_length=length; + myhdr.pkt_id=pkt_sid; + memcpy(offset, &myhdr, sizeof(mysql_hdr)); + memcpy(offset+sizeof(mysql_hdr), row->data, row->length); + pkt_sid++; + } else { + unsigned int left=length; + unsigned int copied=0; + while (left>=0xFFFFFF) { + mysql_hdr myhdr; + myhdr.pkt_length=0xFFFFFF; + myhdr.pkt_id=pkt_sid; + pkt_sid++; + memcpy(offset, &myhdr, sizeof(mysql_hdr)); + offset+=sizeof(mysql_hdr); + memcpy(offset, row->data+copied, myhdr.pkt_length); + offset+=0xFFFFFF; + // we are writing a large packet (over 16MB), we assume we are always outside the buffer + copied+=0xFFFFFF; + left-=0xFFFFFF; + } + mysql_hdr myhdr; + myhdr.pkt_length=left; + myhdr.pkt_id=pkt_sid; + pkt_sid++; + memcpy(offset, &myhdr, sizeof(mysql_hdr)); + offset+=sizeof(mysql_hdr); + memcpy(offset, row->data+copied, myhdr.pkt_length); + // we are writing a large packet (over 16MB), we assume we are always outside the buffer + } + sid=pkt_sid; + return length; +} + void MySQL_ResultSet::add_eof() { PtrSize_t pkt; if (myprot) { diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index 3783d5c30..5d2ba2c2b 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -94,6 +94,7 @@ void Query_Info::begin(unsigned char *_p, int len, bool mysql_header) { QueryPointer=NULL; QueryLength=0; mysql_stmt=NULL; + stmt_meta=NULL; //QueryParserArgs=NULL; QueryParserArgs.digest_text=NULL; QueryParserArgs.first_comment=NULL; @@ -192,7 +193,7 @@ MySQL_Session::MySQL_Session() { thread_session_id=0; pause_until=0; qpo=NULL; - Session_STMT_Manager=NULL; +// Session_STMT_Manager=NULL; start_time=0; command_counters=new StatCounters(15,10,false); healthy=1; @@ -253,9 +254,9 @@ MySQL_Session::~MySQL_Session() { if (admin==false && connections_handler==false && mirror==false) { __sync_fetch_and_sub(&MyHGM->status.client_connections,1); } - if (Session_STMT_Manager) { - delete Session_STMT_Manager; - } +// if (Session_STMT_Manager) { +// delete Session_STMT_Manager; +// } } @@ -813,19 +814,19 @@ __get_pkts_from_client: if (rc_break==true) { break; } - if (Session_STMT_Manager==NULL) { - Session_STMT_Manager = new MySQL_STMT_Manager(); - } +// if (Session_STMT_Manager==NULL) { +// Session_STMT_Manager = new MySQL_STMT_Manager(); +// } if (client_myds->myconn->local_stmts==NULL) { client_myds->myconn->local_stmts=new MySQL_STMTs_local(); } uint64_t hash=client_myds->myconn->local_stmts->compute_hash(current_hostgroup,(char *)client_myds->myconn->userinfo->username,(char *)client_myds->myconn->userinfo->schemaname,(char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength); MySQL_STMT_Global_info *stmt_info=NULL; - if (mysql_thread___stmt_multiplexing) { +// if (mysql_thread___stmt_multiplexing) { stmt_info=GloMyStmt->find_prepared_statement_by_hash(hash); - } else { - stmt_info=Session_STMT_Manager->find_prepared_statement_by_hash(hash); - } +// } else { +// stmt_info=Session_STMT_Manager->find_prepared_statement_by_hash(hash); +// } if (stmt_info) { l_free(pkt.size,pkt.ptr); client_myds->setDSS_STATE_QUERY_SENT_NET(); @@ -840,7 +841,7 @@ __get_pkts_from_client: mybe->server_myds->wait_until=0; pause_until=0; mybe->server_myds->killed_at=0; - mybe->server_myds->mysql_real_query.init(&pkt); + //mybe->server_myds->mysql_real_query.init(&pkt); client_myds->setDSS_STATE_QUERY_SENT_NET(); } } @@ -861,13 +862,14 @@ __get_pkts_from_client: uint32_t stmt_global_id=0; memcpy(&stmt_global_id,(char *)pkt.ptr+5,sizeof(uint32_t)); + CurrentQuery.stmt_global_id=stmt_global_id; // now we get the statement information MySQL_STMT_Global_info *stmt_info=NULL; - if (mysql_thread___stmt_multiplexing) { +// if (mysql_thread___stmt_multiplexing) { stmt_info=GloMyStmt->find_prepared_statement_by_stmt_id(stmt_global_id); - } else { - stmt_info=Session_STMT_Manager->find_prepared_statement_by_stmt_id(stmt_global_id); - } +// } else { +// stmt_info=Session_STMT_Manager->find_prepared_statement_by_stmt_id(stmt_global_id); +// } if (stmt_info==NULL) { // we couldn't find it l_free(pkt.size,pkt.ptr); @@ -877,7 +879,6 @@ __get_pkts_from_client: status=WAITING_CLIENT_DATA; break; } - stmt_execute_metadata_t *stmt_meta=client_myds->myprot.get_binds_from_pkt(pkt.ptr,pkt.size,stmt_info->num_params); if (stmt_meta==NULL) { l_free(pkt.size,pkt.ptr); @@ -889,10 +890,10 @@ __get_pkts_from_client: } // else - CurrentQuery.begin((unsigned char *)stmt_info->query, stmt_info->query_length,false); - - qpo=GloQPro->process_mysql_query(this,pkt.ptr,pkt.size,&CurrentQuery); - assert(qpo); // GloQPro->process_mysql_query() should always return a qpo +// CurrentQuery.begin((unsigned char *)stmt_info->query, stmt_info->query_length,false); + CurrentQuery.stmt_meta=stmt_meta; +// qpo=GloQPro->process_mysql_query(this,pkt.ptr,pkt.size,&CurrentQuery); // FIXME: not sure we need to call this +// assert(qpo); // GloQPro->process_mysql_query() should always return a qpo // NOTE: we do not call YET the follow function for STMT_EXECUTE //rc_break=handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY_qpo(&pkt); current_hostgroup=stmt_info->hostgroup_id; @@ -901,7 +902,7 @@ __get_pkts_from_client: mybe->server_myds->connect_retries_on_failure=0; mybe->server_myds->wait_until=0; mybe->server_myds->killed_at=0; - mybe->server_myds->mysql_real_query.init(&pkt); + //mybe->server_myds->mysql_real_query.init(&pkt); client_myds->setDSS_STATE_QUERY_SENT_NET(); } break; @@ -1032,6 +1033,7 @@ handler_again: break; case PROCESSING_STMT_PREPARE: + case PROCESSING_STMT_EXECUTE: case PROCESSING_QUERY: //fprintf(stderr,"PROCESSING_QUERY\n"); if (pause_until > thread->curtime) { @@ -1075,6 +1077,9 @@ handler_again: case PROCESSING_STMT_PREPARE: previous_status.push(PROCESSING_STMT_PREPARE); break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; default: assert(0); break; @@ -1095,6 +1100,9 @@ handler_again: case PROCESSING_STMT_PREPARE: previous_status.push(PROCESSING_STMT_PREPARE); break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; default: assert(0); break; @@ -1110,6 +1118,9 @@ handler_again: case PROCESSING_STMT_PREPARE: previous_status.push(PROCESSING_STMT_PREPARE); break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; default: assert(0); break; @@ -1127,6 +1138,9 @@ handler_again: case PROCESSING_STMT_PREPARE: previous_status.push(PROCESSING_STMT_PREPARE); break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; default: assert(0); break; @@ -1147,6 +1161,9 @@ handler_again: case PROCESSING_STMT_PREPARE: previous_status.push(PROCESSING_STMT_PREPARE); break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; default: assert(0); break; @@ -1163,6 +1180,9 @@ handler_again: case PROCESSING_STMT_PREPARE: previous_status.push(PROCESSING_STMT_PREPARE); break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; default: assert(0); break; @@ -1170,6 +1190,19 @@ handler_again: NEXT_IMMEDIATE(CHANGING_AUTOCOMMIT); } } + if (status==PROCESSING_STMT_EXECUTE) { + CurrentQuery.mysql_stmt=myconn->local_stmts->find(CurrentQuery.stmt_global_id); + if (CurrentQuery.mysql_stmt==NULL) { + // the conection we too doesn't have the prepared statements prepared + // we try to create it now + MySQL_STMT_Global_info *stmt_info=NULL; + stmt_info=GloMyStmt->find_prepared_statement_by_stmt_id(CurrentQuery.stmt_global_id); + CurrentQuery.QueryLength=stmt_info->query_length; + CurrentQuery.QueryPointer=(unsigned char *)stmt_info->query; + previous_status.push(PROCESSING_STMT_EXECUTE); + NEXT_IMMEDIATE(PROCESSING_STMT_PREPARE); + } + } } } //status=PROCESSING_QUERY; @@ -1200,7 +1233,36 @@ handler_again: rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize); break; case PROCESSING_STMT_PREPARE: - rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize,&CurrentQuery.mysql_stmt); + //rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize,&CurrentQuery.mysql_stmt); + rc=myconn->async_query(myds->revents, (char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength,&CurrentQuery.mysql_stmt); + break; + case PROCESSING_STMT_EXECUTE: + // PROCESSING_STMT_EXECUTE FIXME + { + //MySQL_STMT_Global_info *stmt_info=NULL; +/* + if (mysql_thread___stmt_multiplexing) { + stmt_info=GloMyStmt->find_prepared_statement_by_stmt_id(stmt_global_id); + } else { + stmt_info=Session_STMT_Manager->find_prepared_statement_by_stmt_id(stmt_global_id); + } +*/ +/* + CurrentQuery.mysql_stmt=myconn->local_stmts->find(CurrentQuery.stmt_global_id); + if (CurrentQuery.mysql_stmt==NULL) { + // the conection we too doesn't have the prepared statements prepared + // we try to create it now + MySQL_STMT_Global_info *stmt_info=NULL; + stmt_info=GloMyStmt->find_prepared_statement_by_stmt_id(CurrentQuery.stmt_global_id); + CurrentQuery.QueryLength=stmt_info->query_length; + CurrentQuery.QueryPointer=(unsigned char *)stmt_info->query; + previous_status.push(PROCESSING_STMT_EXECUTE); + NEXT_IMMEDIATE(PROCESSING_STMT_PREPARE); + } +*/ + //rc=myconn->async_query(myds->revents, myds->mysql_real_query.QueryPtr,myds->mysql_real_query.QuerySize,&CurrentQuery.mysql_stmt, CurrentQuery.stmt_meta); + rc=myconn->async_query(myds->revents, (char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength,&CurrentQuery.mysql_stmt, CurrentQuery.stmt_meta); + } break; default: assert(0); @@ -1230,7 +1292,7 @@ handler_again: { uint32_t stmid; MySQL_STMT_Global_info *stmt_info=NULL; - if (mysql_thread___stmt_multiplexing) { +// if (mysql_thread___stmt_multiplexing) { stmt_info=GloMyStmt->add_prepared_statement(current_hostgroup, (char *)client_myds->myconn->userinfo->username, (char *)client_myds->myconn->userinfo->schemaname, @@ -1243,6 +1305,7 @@ handler_again: true); stmid=stmt_info->statement_id; //uint64_t hash=client_myds->myconn->local_stmts->compute_hash(current_hostgroup,(char *)client_myds->myconn->userinfo->username,(char *)client_myds->myconn->userinfo->schemaname,(char *)CurrentQuery.QueryPointer,CurrentQuery.QueryLength); +/* } else { //stmt_info=Session_STMT_Manager->find_prepared_statement_by_hash(hash); stmt_info=Session_STMT_Manager->add_prepared_statement(current_hostgroup, @@ -1256,12 +1319,19 @@ handler_again: qpo->delay, false); stmid=stmt_info->statement_id; - } - client_myds->myconn->local_stmts->insert(stmid,CurrentQuery.mysql_stmt); +*/ +// } + myds->myconn->local_stmts->insert(stmid,CurrentQuery.mysql_stmt); client_myds->myprot.generate_STMT_PREPARE_RESPONSE(client_myds->pkt_sid+1,stmt_info); } CurrentQuery.mysql_stmt=NULL; break; + case PROCESSING_STMT_EXECUTE: + { + MySQL_Stmt_Result_to_MySQL_wire(CurrentQuery.mysql_stmt); + } + CurrentQuery.mysql_stmt=NULL; + break; default: assert(0); break; @@ -2288,6 +2358,14 @@ void MySQL_Session::handler___client_DSS_QUERY_SENT___server_DSS_NOT_INITIALIZED } } +void MySQL_Session::MySQL_Stmt_Result_to_MySQL_wire(MYSQL_STMT *stmt) { + MYSQL_RES *stmt_result=mysql_stmt_result_metadata(stmt); + if (stmt_result) { + MySQL_ResultSet *MyRS=new MySQL_ResultSet(&client_myds->myprot, stmt_result, stmt->mysql, stmt); + bool resultset_completed=MyRS->get_resultset(client_myds->PSarrayOUT); + } +} + void MySQL_Session::MySQL_Result_to_MySQL_wire(MYSQL *mysql, MySQL_ResultSet *MyRS) { if (MyRS) { assert(MyRS->result); diff --git a/lib/MySQL_Thread.cpp b/lib/MySQL_Thread.cpp index 227153942..548128c19 100644 --- a/lib/MySQL_Thread.cpp +++ b/lib/MySQL_Thread.cpp @@ -169,7 +169,7 @@ static char * mysql_thread_variables_names[]= { (char *)"monitor_writer_is_also_reader", (char *)"max_transaction_time", (char *)"multiplexing", - (char *)"stmt_multiplexing", +// (char *)"stmt_multiplexing", (char *)"enforce_autocommit_on_reads", (char *)"threshold_query_length", (char *)"threshold_resultset_size", @@ -267,7 +267,7 @@ MySQL_Threads_Handler::MySQL_Threads_Handler() { variables.client_found_rows=true; variables.commands_stats=true; variables.multiplexing=true; - variables.stmt_multiplexing=false; +// variables.stmt_multiplexing=false; variables.enforce_autocommit_on_reads=false; variables.query_digests=true; variables.sessions_sort=true; @@ -447,7 +447,7 @@ int MySQL_Threads_Handler::get_variable_int(char *name) { if (!strcasecmp(name,"have_compress")) return (int)variables.have_compress; if (!strcasecmp(name,"client_found_rows")) return (int)variables.client_found_rows; if (!strcasecmp(name,"multiplexing")) return (int)variables.multiplexing; - if (!strcasecmp(name,"stmt_multiplexing")) return (int)variables.stmt_multiplexing; +// if (!strcasecmp(name,"stmt_multiplexing")) return (int)variables.stmt_multiplexing; if (!strcasecmp(name,"enforce_autocommit_on_reads")) return (int)variables.enforce_autocommit_on_reads; if (!strcasecmp(name,"commands_stats")) return (int)variables.commands_stats; if (!strcasecmp(name,"query_digests")) return (int)variables.query_digests; @@ -652,9 +652,9 @@ char * MySQL_Threads_Handler::get_variable(char *name) { // this is the public f if (!strcasecmp(name,"multiplexing")) { return strdup((variables.multiplexing ? "true" : "false")); } - if (!strcasecmp(name,"stmt_multiplexing")) { - return strdup((variables.stmt_multiplexing ? "true" : "false")); - } +// if (!strcasecmp(name,"stmt_multiplexing")) { +// return strdup((variables.stmt_multiplexing ? "true" : "false")); +// } if (!strcasecmp(name,"enforce_autocommit_on_reads")) { return strdup((variables.enforce_autocommit_on_reads ? "true" : "false")); } @@ -1209,7 +1209,7 @@ bool MySQL_Threads_Handler::set_variable(char *name, char *value) { // this is t } return false; } - if (!strcasecmp(name,"stmt_multiplexing")) { +// if (!strcasecmp(name,"stmt_multiplexing")) { /* // FIXME : for now, stmt_multiplexing cannot be enabled // there is no code to handle it @@ -1218,12 +1218,12 @@ bool MySQL_Threads_Handler::set_variable(char *name, char *value) { // this is t return true; } */ - if (strcasecmp(value,"false")==0 || strcasecmp(value,"0")==0) { - variables.stmt_multiplexing=false; - return true; - } - return false; - } +// if (strcasecmp(value,"false")==0 || strcasecmp(value,"0")==0) { +// variables.stmt_multiplexing=false; +// return true; +// } +// return false; +// } if (!strcasecmp(name,"enforce_autocommit_on_reads")) { if (strcasecmp(value,"true")==0 || strcasecmp(value,"1")==0) { variables.enforce_autocommit_on_reads=true; @@ -1969,7 +1969,7 @@ void MySQL_Thread::refresh_variables() { mysql_thread___have_compress=(bool)GloMTH->get_variable_int((char *)"have_compress"); mysql_thread___client_found_rows=(bool)GloMTH->get_variable_int((char *)"client_found_rows"); mysql_thread___multiplexing=(bool)GloMTH->get_variable_int((char *)"multiplexing"); - mysql_thread___stmt_multiplexing=(bool)GloMTH->get_variable_int((char *)"stmt_multiplexing"); +// mysql_thread___stmt_multiplexing=(bool)GloMTH->get_variable_int((char *)"stmt_multiplexing"); mysql_thread___enforce_autocommit_on_reads=(bool)GloMTH->get_variable_int((char *)"enforce_autocommit_on_reads"); mysql_thread___commands_stats=(bool)GloMTH->get_variable_int((char *)"commands_stats"); mysql_thread___query_digests=(bool)GloMTH->get_variable_int((char *)"query_digests"); diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 7a48deb13..d0a80eed4 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -158,12 +158,13 @@ MySQL_Connection::MySQL_Connection() { query.ptr=NULL; query.length=0; query.stmt=NULL; + query.stmt_meta=NULL; largest_query_length=0; MyRS=NULL; creation_time=0; processing_multi_statement=false; proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 4, "Creating new MySQL_Connection %p\n", this); - local_stmts=NULL; + local_stmts=new MySQL_STMTs_local(); }; MySQL_Connection::~MySQL_Connection() { @@ -427,6 +428,8 @@ void MySQL_Connection::real_query_cont(short event) { void MySQL_Connection::stmt_prepare_start() { PROXY_TRACE(); query.stmt=mysql_stmt_init(mysql); + my_bool my_arg=true; + mysql_stmt_attr_set(query.stmt, STMT_ATTR_UPDATE_MAX_LENGTH, &my_arg); async_exit_status = mysql_stmt_prepare_start(&interr , query.stmt, query.ptr, query.length); } @@ -435,6 +438,27 @@ void MySQL_Connection::stmt_prepare_cont(short event) { async_exit_status = mysql_stmt_prepare_cont(&interr , query.stmt , mysql_status(event, true)); } +void MySQL_Connection::stmt_execute_start() { + PROXY_TRACE(); + mysql_stmt_bind_param(query.stmt, query.stmt_meta->binds); // FIXME : add error handling + async_exit_status = mysql_stmt_execute_start(&interr , query.stmt); +} + +void MySQL_Connection::stmt_execute_cont(short event) { + proxy_debug(PROXY_DEBUG_MYSQL_PROTOCOL, 6,"event=%d\n", event); + async_exit_status = mysql_stmt_execute_cont(&interr , query.stmt , mysql_status(event, true)); +} + +void MySQL_Connection::stmt_execute_store_result_start() { + PROXY_TRACE(); + async_exit_status = mysql_stmt_store_result_start(&interr, query.stmt); +} + +void MySQL_Connection::stmt_execute_store_result_cont(short event) { + proxy_debug(PROXY_DEBUG_MYSQL_PROTOCOL, 6,"event=%d\n", event); + async_exit_status = mysql_stmt_store_result_cont(&interr , query.stmt , mysql_status(event, true)); +} + void MySQL_Connection::store_result_start() { PROXY_TRACE(); async_exit_status = mysql_store_result_start(&mysql_result, mysql); @@ -623,6 +647,76 @@ handler_again: case ASYNC_STMT_PREPARE_FAILED: break; + case ASYNC_STMT_EXECUTE_START: + stmt_execute_start(); + __sync_fetch_and_add(&parent->queries_sent,1); +// __sync_fetch_and_add(&parent->bytes_sent,query.length); +// myds->sess->thread->status_variables.queries_backends_bytes_sent+=query.length; + if (async_exit_status) { + next_event(ASYNC_STMT_EXECUTE_CONT); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_STORE_RESULT_START); + } + break; + case ASYNC_STMT_EXECUTE_CONT: + stmt_execute_cont(event); + if (async_exit_status) { + next_event(ASYNC_STMT_EXECUTE_CONT); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_STORE_RESULT_START); + } + break; + + case ASYNC_STMT_EXECUTE_STORE_RESULT_START: + if (mysql_stmt_errno(query.stmt)) { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_END); + } + { + MYSQL_RES *stmt_result=mysql_stmt_result_metadata(query.stmt); + if (stmt_result==NULL) { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_END); + } + } + stmt_execute_store_result_start(); + if (async_exit_status) { + next_event(ASYNC_STMT_EXECUTE_STORE_RESULT_CONT); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_END); + } + break; + case ASYNC_STMT_EXECUTE_STORE_RESULT_CONT: + stmt_execute_store_result_cont(event); + if (async_exit_status) { + next_event(ASYNC_STMT_EXECUTE_STORE_RESULT_CONT); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_END); + } + break; + case ASYNC_STMT_EXECUTE_END: + { +/* + int row_count= 0; + fprintf(stdout, "Fetching results ...\n"); + while (!mysql_stmt_fetch(query.stmt)) + { + row_count++; + fprintf(stdout, " row %d\n", row_count); + } +*/ + } +/* + if (interr) { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_FAILED); + } else { + NEXT_IMMEDIATE(ASYNC_STMT_EXECUTE_SUCCESSFUL); + } +*/ + break; +// case ASYNC_STMT_EXECUTE_SUCCESSFUL: +// break; +// case ASYNC_STMT_EXECUTE_FAILED: +// break; + case ASYNC_NEXT_RESULT_START: async_exit_status = mysql_next_result_start(&interr, mysql); if (async_exit_status) { @@ -893,7 +987,7 @@ int MySQL_Connection::async_connect(short event) { // 0 when the query is completed // 1 when the query is not completed // the calling function should check mysql error in mysql struct -int MySQL_Connection::async_query(short event, char *stmt, unsigned long length, MYSQL_STMT **_stmt) { +int MySQL_Connection::async_query(short event, char *stmt, unsigned long length, MYSQL_STMT **_stmt, stmt_execute_metadata_t *stmt_meta) { PROXY_TRACE(); assert(mysql); assert(ret_mysql); @@ -910,10 +1004,19 @@ int MySQL_Connection::async_query(short event, char *stmt, unsigned long length, return 0; break; case ASYNC_IDLE: - set_query(stmt,length); + if (stmt_meta==NULL) + set_query(stmt,length); async_state_machine=ASYNC_QUERY_START; if (_stmt) { - async_state_machine=ASYNC_STMT_PREPARE_START; + query.stmt=*_stmt; + if (stmt_meta==NULL) { + async_state_machine=ASYNC_STMT_PREPARE_START; + } else { + if (query.stmt_meta==NULL) { + query.stmt_meta=stmt_meta; + } + async_state_machine=ASYNC_STMT_EXECUTE_START; + } } default: handler(event); @@ -927,6 +1030,14 @@ int MySQL_Connection::async_query(short event, char *stmt, unsigned long length, return 0; } } + if (async_state_machine==ASYNC_STMT_EXECUTE_END) { + async_state_machine=ASYNC_QUERY_END; + if (mysql_stmt_errno(query.stmt)) { + return -1; + } else { + return 0; + } + } if (async_state_machine==ASYNC_STMT_PREPARE_SUCCESSFUL || async_state_machine==ASYNC_STMT_PREPARE_FAILED) { if (async_state_machine==ASYNC_STMT_PREPARE_FAILED) { //mysql_stmt_close(query.stmt); diff --git a/test/PrepStmt/Makefile b/test/PrepStmt/Makefile index 0b0615a3f..1e48b9919 100644 --- a/test/PrepStmt/Makefile +++ b/test/PrepStmt/Makefile @@ -74,6 +74,9 @@ client6: client6.cpp client7: client7.cpp $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) +client8: client8.cpp + $(CXX) -o $@ $@.cpp $(LIBPROXYSQLAR) $(MYCPPFLAGS) $(CPPFLAGS) $(LDIRS) $(LIBS) $(LDFLAGS) $(MYLIBS) + default: $(EXECUTABLE) diff --git a/test/PrepStmt/client8 b/test/PrepStmt/client8 new file mode 100755 index 0000000000000000000000000000000000000000..a7b324b8901a6472bf2b2418e3293e3a42a0db18 GIT binary patch literal 1532587 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

x#!tSNbV^>`UH=sZIqaoI1p zw&sq3ZRb(vYWb76lqFu|OZV)xJ!D=urrode=!ET7^(FhysRs6$RgQ&;O}0DRDj$q3 zkhi}n-P)|zOs4H@EAwyK-;_!1nN%DZ>wT$LUn~OLTqNd18d1y58IskZ^FCR}Qy?;} z&EZXg;#kF+QWwS4xOnNm#1B$1aiNc!9CQOpdd+MZc-lBh4$~5Bz^t=Y)knxqmwF`q z`{&@HhC4bqsm|j8ebT3rfM{;1EC-9an=WI6ea}!eLH#y2_Eq`4Hl{CbPvnS{eFkTv zm0GXK@q)hp!`gWOL~*=-{{WSug1urqBNo)7sR&k1x`Lo!*WdvMoE$~&5K*H>uppu_ zHj)@MF-A?XW5tHOBz6(I#==Dn_7;`*`<=a`nB@2SzwiG&efaFm?#|B6JoC)#%xpDbSStI-&U@{e*;>$AJ;`@_rJuq|vG`8qxeGJELb_*j|MH=L^r_Cf0K zz?X;E>!LjD9nN$^sv#L zMRUh)3z{N6IdNvj(9kdPL~kFEos7GFp|8t$bqjFO*+7|LEW$B9j%2}ip(OL^gm?+# z_7J{y)4s$t7~u+0g$BzI50px~Oc&gbh|3r$F4fuI`ET*Sb8}fdy#6g7cab6$;!(RS z9u|loug`?e^niDHd3yk(|Dpc#Y3QGySETZ0x7E8*5Zb(%cX*^!*gCh(#dcP5<-&IC ziPWA#Je+|W%}e7vI3!9lFUrAA29yo?SGX8eGaa;AUjHqiu@TEd1Y2&udS z42N1#VLKr$Sr>K^2`ZQF#nisF`}h06b63`JG<&St^Sf;5h{}R?`k|ut#`^mD9{3!e zFXq^Y=O(;lXP4;-O-I97lOj zBb{)Wp5Vcr-Um^`=OV4WbZD zsKw{ymDpz5NcAYz@%b>HOHlRwOFoPAK_bgVHZK>2Ub3kn#^@O1BE{o(JX#v#5rzS5 zyUd@F^whELB41|WLeR0g<@qPPxemg=Twmzfivn|f&A`vzG|#5mDnu4|w?(N!F~XU! zZy`CasL`s2j#TQe z2!Y=}>Pn^l3dg5sZy5V5jQtfB-r=IfO8M}IK?bvfj{Et@ z{o;_9Z2$nhUhi=-?WG z4z8EKODcy+S@5GdHvB278O*=w?!X5CyXl*e*W%Jh73q->X9i`BYm_xkj;{ECthQJ@ z$tpN243Ck+(fzl-cpoy3ii}l|H!o?uE5jj}SxMhb#^B04rrrmY?!fZv zN?lHdnN&u!%F#ZKL;>SwZM)2i*vuJc>G_vVsy=T*8K8q@?aY%bYoZ;HYV5bfj5_pN zKJk1l`pfol5xG*=7sy`6!?3(&f8i0vGUMjtjD6MdrjHLEL}sMIa-qE7rBfxw=I~-W zo@zFGe~u(b#nZ0z5R-M(;E!*pP%rU#hMt)r$a~DQ#+P#w7Fcuv(4B%-k&&N~@RbCd>e zJ?a3K3iit(xKTJP0Eb~S4(q95=Qi#!^hQ#fF466uF3|!9F!pE^i)Z69W$j~%aJjO+ zM|^#=o*Vvvoy*4+ZoIrn^f?X1BEf$%N-qK1GLPRyT~T zFg1n)2(c_;|CVvCmy5kj@jw;B`by-U^h{#7fmRLC90}&ow{dySZC%iUp#^^-^V2|M|_7aFh?wt8=T{vj2up8o7}Z@2M-lSBrr=X zU(ei@>`5C`Q2163+O4Aei;S|%jAyIGSQn4OGsoYG-vz8ImNU*A#j3NY{%64kp;(po zucg7`Kb9+DF-5!cIf^Js79OHYk&EUTH!U*mo1=js6(LN8Hq1wV8cGfF09|NOiSdTc z<&3i^E7#Ui1j@?wOMdh0KbC8@(?2NJ7U*{8^;+V3#-~AjjUbFG;T@xln`T)yFAm@_ z^Ebxfum#k|s02e`d4v*}8qObIq}HLsQM8^71<-XF%LUOdH@m^8D@P(s{z1GSs3&U`% zd5(K>y)14C#mKM$v5*#*6#=7^UAkh7W%2MIL~wt!k`DTk{Kb5 zO~1!-+r|6wHYeK1)7_yVrcz)w3-tRFTgG{p!>4%Xh z!xH!fO5gHOW{ZwNSPi|n0agyE)I_YQbL9;Xq*xrXePUpaR6L9MJpN(S@nKzPpfUPA zri<8pVAL0)9bh`Zx$*&q+2Vnk^8@&fliuGnhT9YCdj_C~M&B8o7Gm7omgCZ;7+B=8 zo|xVsMwSo3!#J>vxen#yx6+t+xm!61SKuJN67N&-OUTl|c-a!F`M7bkDFd@!;3;=N zMmHOLRv}f+DPvDi8l*nqX)}1xgicD&w_{_o-f%uhpyN4wyuNkuH#?S7=C_NnupcRM!5?*T$*~vxJL3HXUkvZI9z-Mt^iLc=q{Qnea8LWQoG3bvWH_~ zfW-u_Vs~5ypP2Eu|K(u|jy))M!FZM4{{r7D7lGfOX=;z*ZZS>R`2C_LFTAYG_4S}N zZ4dhe;5_sg{lokQF)e@#FIF1M#vBsSH`ZMkA~D~=F4GwfF}2$+lk3G}Xrg&g&Pp}~ z?J}XjGJKX9ONV1-gRD7Ruo|~G%9#aU3>Ck@N0)p9?55wqu8cpdxTX@!z&)tzOiR}H z_)MXg!FMvy>`0L3K7Ad0GTcns1t&h%oBAgzONMdSHxyyu9T{=y!_%a;C{_4g@sF4B zq!4Bmklm54C2%=5qMZXb*Ye zxFTe*lC2KWA@7 zzLqUSI&oB9EsRU#OM$5O4@M3LFK- zfpK=z`Xipw;+b5B09#l*vlX_oPP^{K8;36nq}4N@ATQAoV>j(6HrUTHZ9O&uQG<^P z%*k{RvnV_Zbe{xfFL0R2e0M~b${X`w+-XkcLhcUCn#LV^dyy)fLFFYMg}xfhsP{BchL`Z9>fl{97<$Q%Um~wyuf!?(`ldorWLssG@l)W2K4vAIUFW9RTdsT6M~eF$r|!L$n!|* zW0qZgedg2F8h-3siOKK@I$`EnkoG4l!ta&a?4Uu}n6}gVBk}wnli?vt9TI@G5S8fk zNW~zRC7LY!`bbVFtW?88GOt5kW?b+q)ExW%<~sy0s3F|LVjdezQ$5qnKk+41taOF( z%_Hc+)&GD;Wiz|2BOHFSoBk^wow2URv;){cRH`Ua)48*=?oc1G|}j(QbI|OXX71=r-b|rrm=dyKk?9 zXzHRm$tXtEJq+{V z6Sa7h&^N&Pa^XP_lsUu9VtQx!43y#Th@b~JmC0PlEAq>~_z>PsC}8O}ri`8Meq`Pf zJp0zjM%l~SkF6+gl zXK9WJ21TdP3n$EE%`@94>#C3AbEK8s)=s$dL!P*g$&KxD&LUK1eLiQtCUa{uj=(r+ zky02XDYr2CgjZj%@LLwvdAaSA_4sTt7qq%jroTRpr*i6{S&s#%=ljgG@tQdruTQ3! zr`}WM^etU)cJ{`!S9-4ZdAfMo;nX**N&4WzSiQ5wo1E_EK3SJC5K(BkHvEKHsvPQq z7t^Ktm7!QfS%TvLwO&G;1YEYBsbZycE21w)I75?()>#$523*#U#h zh!l#R*G#^y5*vkHGGv->1tDhN(|g#8|P>lKUcu!!yzDGL8{ z@b8Y2hUE|V3eq+XG2<<>!0g^$qG5@5q_B<7+?!k>frnf~(ep7gVCxyS0<+%JAFW&N zL&MlMtp)OIIC|nIn4>2mW50Re+23>eSm8}2Ojr#vyB>g-wvb!f0$S_~%;}zW-?^;5 zdU2puYNYbT0WZ60r*Kz3SvQqgPZ433UmT60YMij$Zc7N?)@oz7buy>Q7X@G*o8u+l z%-gBEl{3d-pmMKSu;(jX^#Hu+w%%?k*Vhcfo2APUqEx<=8Mp25>cADO@TKpp^gKJZ z9)gKC6OlE`D6k4Vdnd@OSX>(vc*2Llkmm$I7w*wK?KMf*^8(Jd00XWF<`(xj<=LA z_Se$qEAfsN>Ju#CwdHrDD_+h&H?{@d88i#b`Zen`Vu%z)B)O8-j3+S7NM|!nt;6*Y z=UY;oX{BF@h%3$T3IS6JZ<_|R4}yANy|U?QMA0|vzS8kHjoCSTp(gt~wpZ9gHq9DU z0q*V;2Y}w;Kx{w4x@rLy)Bw-xcGEZT1|6?+>93HS=tgF!Z_$}-x23U^12=qUHcEYf z>jgO)4AXEd){DA>j8JCWkxT7WbOg9!X^z0Gu^68=Zw5<|bsCM_tl#$Cw7_eIj!z{W zJ&iZQ|1=9|aR@I@nFS!C>jSdzGOHI9&cD&v@hq0>0~{}A?5&#Rk0~dwd>r>y6@`LI zfU%<>qZ{kt2WF+9W2aAOr5SCgkGDiI;={}I^|qw1P~2d%--FC98tS3sevU};A<8fa z8pZO>3ybUCpDyeO?&s5VKDfQCa7%`^LjRZw_iIS{5u9}cy(_rjP_v8@i{PA57Wmw4 zP>#mJcP3}UT~#^L%1|AK6YDP` zL}Y>md@T?%4t-C*Qf%La^V~{ZI;bi|#vFp(wBAEr62%SDbAE6$nj!M<5+d6iT zyUJr!8m&6oMka5i!!Ww6;&D2CQi?hvMXgKK>f1V&9jS}dt95!=f=-nf9ho#v=IYkP z$p!yhc{x83oLrwIk4j2RR7dH#8LiT*B2_wdSGjLWN>WN!MU!+ZzGf##aJec~pA?mpfH?MW{m{cj<{c6o z92hPe5E2yBTj||bmXI!s?yB#a)WKPwkn9|#)gXRO`V>`^TBc2kQfcFonBF1-6IFW6 zSan3QN~cRpN{Kf5CTXL~y&|LlA`(>zYMIF~R-K~LBqhosl610&WKA^wXjS@{q?81i zRuh?^O3|pIBV}$*uDF39O=9Xe**FjP2=`7hDKJ^^(6IhN5ut;9#7%Zq$Z&Vb)SL)S zqAWErJ~1gRQ5L4w>yct|O`=|-S82=gU8De0D-3xc(?=ys(KZGe?j0Ht8ZsbUChlI` zrjsryD&DwzV86g2(*9t^(x301*aoUvgDK`rnOei`_;)1nk+2DyRWa0EHp6G zR~GCW95P_2EGb!!+tr+z_6){Pv ziP4Ibq%@sOr_(Cp)#-v!YJ@?LD3uY(Dt(+RDh|pMrB|mYbZWg$5v@r{Euh1mMAg!f~X_Dg*=>*j{g-WYUN>fKG zl2uXhYJFKk$aIJZyruG^V8K%eT}VJwGzzIa>tvFvtUQ=J#-yrKG)PAsY($D$0Y#2O zaxmExEXE3bN@`*hln}ae221+U-PfC%eChAg?8K62^ zUY2>#3-OCXCLsRtuoY=4jnF12DKttb6muyxQ6pVnZoKag&r4COq9rZ-59cf|c~{z| z6jL1`lOcw;?@I0Qg_5?AV8|56H;_{hi}&wJ)t#s}nSo}o2DkUAZAF&*VXs2oP zQE@oU81=FL@d(zF(r>6&SGml^)vY7M#l_97Q|Hdua;MwH&BYA|d8-oJ=!N=fR9YsE zK92gS>nc~XDn!L(BTGz@Y;`XjKV;hb(pQj+kiAA(4K|wozSIlkHvPG65*}+RUm{e5 z6O^Qi7WP*zEC^yi3nE8Ziqu3SyJW4R72-cOx{Ci!xc4%Ltd&crR7EQnH|dY8m5$q8 z%l^omTD5X%6`lIQaq_YQ#G$fQigr%zVr8wI+QlGF4>rCp^})dB0>}dr?hz3BpM%t( zzj2#x3XgTbM~u!Hh1&}tWHe+idRae5Ps1a~C~SK`Rzv7d@q)i;+e98K$N19vo$pI; zK;-%FOQ%5gLg-IProVC9L>`OVsPMbtUBSW4DHYriraY0VP`P9-<-#b2RBYlv0V=9U zvoX#-Qa18eM`4+AO2ZFLwni z2Lvj8dPjr?4Mc-Q6m!(FvY^1;#;RTThsiXFW1*Kls{zBpf~2x9Gj1g& z^=PF{MM_Hv-&UQFtWS58v(YE2ZD;R(J#aRg18hvk(#(oD%GnUn#PH@#)vRm~Gf%n~ zG@*HgzaMLC$;;3H)Fis1Y&$!L4^Z|C3qqT8V31=8P#HNHm27k=T-`dm!PKG6r%IHEC9BXTj7pX~Lj?jErozW}kSsuh1eFDb zg(y5cI(sTyxfxNuS$RwBH6GYeif@++Cv@btbVk{xtJpH0(^)#lv%)!@%g-s>bQN3D zId0M^Zsn(lO>vd7EwLdT-$fRiqE^S3A1)#&4lmmh8`9w(vN&~QiaM?Qc#pCOm2HU) z>3B~mIwFEnGKrfJ;g@ZR4e9t!)=N9WWnp~+!(?Frfqvl;+|rHK=wxAWni#!;PF12#16^>Hd8emn zv|3G+q#|%rMOR+Nbakx)>L)i_!_zR0Q-5^A3{& z>MRS8QdWf5S*A{n^6n?|@2zm_=;|hmjTG?jEr5M}LS+LPtyIPm?!E(Lz5~4#037it zbV%F!G_fOmFv4*4aOvoRFy&%HfjXZq$u~AK9@~9ovFfChSVTWrC-XOM(od(4_K^Ae zh79lzRQ6MZ;==kE581$QKk)~52DkD4B4Ftf)jD-Vlm<@_Q6Az?gbq!8jV>yVzCOO* zEPb6_q`wid>O?$IXt@hT6y9;kP_$%^2z6qtR-+T=1cWLEgaj-5c}RI$@f^tz7_T4> z4#H|7_z1Gt;a2fbvBOP<$aE2ZDxM@vM#Y1fwh^OM$tu&`P$epPNQI%|IRU=C2lx(_ z=`}icHy0x!^l>T;Z!SDAjJ_g=BI40Ip-QATl{B?tAX08uOh-{jD<0xMz}L60q&ZAQ zsGv*5-9m|6kmd0eLlNoGIRX!d@y1jY>CxGwpdJ;2P!2GuFSEMhp42Fvn~Z-ddJgms zQ@Hi^WsbVLSKNWe&PbkMWW`+xswh;y;%`N7M&84X{^&75K{9PrJSJG_9oR2CBrHIv zkel?k;sI17qcQAK(O=wg7b(eHEA9}9$XWquS?LBuS{ip4PplN8*xv<3I}vSiQ(37T zvS&xe5PvIak9R2jp$(&x6GR~ci-6vEL9A;AGsPSqRA)VxA{89A_B@*#=jfhOu z#O%w)vh3Ij7oip=M0OH}2dtRD#$Dn} z<2^GF<7Nfx@}ZATx)74hbj=DXA>t!6Q0&G=6DzEDzA9 zE~XHW-#7qzP$5z{vdo(yNOq_!MlR)%b2o0XgmFKutJsjt1HFtENo>M^k^!N@aKbv9 ziXeSO%_#Ou=7)YFdEA7j*z8=sDcylE+QO4t(vh^K!pm4oh;7`Yba6JmgpXwOcom~{ zlQ!eUPGMN-A=ynS2pSmr2{X(MWA5o-kd68*l_~BM$?Ou5oMfsmjKxZXfMO(-B4M=H z1Ctajswd&rM5)p4i`GO@NrewCG}frb!Y!1*=m9(DrhuIjJ9OHlv7)jsJGDFl;(+o3 zW(>MQpV%*{vuSrSdsU?( zEcU8(@KGh|lga|9WDTS%XcFVlPA)s5q8$*qUO73b2Njc(?uyANPN|%XJfuQ0(pf1P z=}|Emg}XvB(p@nb=`K%3x+)|iot2Z3K8%nt8HH2QI4K$FQJ#!+RZK>@D<>m;Dkmd- zbQO}3?hliZ7OtYA;uw1UEph4jLHg3`!z8BP-%^>Ll@ppiAEvc9wYuBe%INJBl^BD4$tmcYC_4oYxN=!&N)mb_6XdE$(eZ2}b5`r4oMn@ojSu?9 z!Je-2!AU9FXhm9zMz0o6+<26a(ZtF{?->F@zYKa3(egyU9e<*~4QHh!Vca7&B`Gyo zj;OM`TIyP0SAgk!j(f>fdW>BqqLWk#z<9nNM;hePAcY*Ak#QUY!#GwH+Wch!qqFm0 zLgN6J6dzn6Eh!b9BylQqghZ;>uT!LwDFO8 zVvTV@d{flu!bNAI7=5dJIuk{7wbDBlJuivq-;Y+Obd|}%D_utUaw~F&Ct6@v)kVI|ze+Z#GU4;I$tQbNCy=^HUz!cWULA%6( zsu+wAi93qbCPkt{NlIx`UX=AEiJmZHZ<5s09EICKf#RT7!ta3o!mR=gtt^$Wxk>l8;V&LvT^vP;<0Qn zW2i@i!60@>89T>VK8)Jm%GJe1hc3Y=HFPK%N}y$r9M6$Pw!%z6nC*zsxHS2nmL%BL|^%EzLm?(j;mvyGH+A{0|UzA@_ThN~0; zZsmisD&>aJv{lRxQ{S)@OqkT47r;EI91!f5G`eZ()^%c^C^{(RgQO8%c@LC*xwjZI zuH+|0TngXVaf_k5%7g11C%`2uK;s(q+LQ$gsY>Q4tbzWbu2qSDH$f_ z|N7kW>x&^ODih}y{4c^0_FWp!DI3~lC1$#Zwj2;P-4UZN^QYDdZI+`&kEc$g66(M< z7{`q;j^knkpXId;50~|mW=+Vc&B$ArUsRl8c7htFK^R?AA)tYm<}~0uZ%NZxxP-mO z%zzI%!pp~8Q`9jS0FQR!^+KgN6Vc^?Q7iO#YGsMTTnxR6!@98Rv{A4z7#ud0I88#b zR?MkDG!aYV&~-F}{jd6k>aa~KU7HSaoix5^vIx@IQazHGnh=QuLzY!efJjkkMhX+4 z!)0j-5IMAIpFUom#g3OPztm$WLVc%-owsYB6jgZl#W5iqxn72(#)oO)0n8Fp-+F7(VSP+EqXL`un z!m{!q3sFIP2-EO{p=Djg;`rZ=V}SpY>@j^J!YArOAne>kVN%6;VDWd^R)?KOR3YQ9Ujh(}!>|HNq4#G303&>k+l> zf4(>Bon(Jg6JhS-rR1udqSAh*Clp8M);~tW7>*coK`ASXcICjzt_Nd~7>njC2YMN6 zG#Wn0N$I-6j_LHce1fE}oc8dyW6SS@*T;09c-}Xn8-L`?8bR(n-LuYJFU>}VTrX!)LBAP@DMoI)k zM+7GoC)0h4^28*9>M)J|9z!Xa@H}FitRu{}ILz37P~n==)Fydl+s*_swK1TY7{TW})(Z zS2`{^39VvY%xGeTzLcF`Au-%LtbkrL62gJpqYGv8R3ILDzZIFD7~@g!02jOUbboX%Ia zp>T2P=p3z1);Sxe;whvin*u}qDd-h9c^jwmaRz|#KxflbK&L3`UMroL&7o`S*i}B< zcff#<0aVfQ!=+$Hc9q*;>V}7QocP0jP|=}>Lcu`9Zwltho>WTPy}Trbl33$pveMPb z&8f5G`Hz436bwaB%f*3m@1$gm`o+d!%BH7hXAGRVy2$%r^ak_WU<3RyX%x>V5F5|G}@p2fv0N z{2Kk2U*rGsYw}-yP5<-HUdH>cQnhL|{4DXaGXAWMKbsGJ)j#+#z5dgWY5AXiOy~d2 zk9qXJ`9Y&<*QrytF0+wYXUZ;9Hhq{qA7;mYN&Y7PIr*D5wf|rKn*A?-GFerWsj4Vv zRZ*s@qWo7y`KpTYRu$!|D(pg4SsjQCqzR-NqyfYh@)5)gQX66oX$;}N`jDECW)KTV zT}X9EQ-~#`A;k2nfh*631VK(fIzWDgXdw?E_K+oz5s)j8?vQ-QM95o+Ib3da zG2}Z)B;*#P4&)2S0LU4L8)PFS1@Z)91DOTs133n12l){)8uACE3FIrtFvulHSI7>? zc*q+_HOO>`ALJ0EHRK0K4CF4P0b~(m5aa^H9kK;77V-jO3z-Ay2l)-+1X&A7g!~El z2(lFN3FI22CuBEd668I^4DuO73E2l}0r?i9g4~4EhRlQXhn$AELN-9gKpsP^Az6?> z$We$RWDP_EF+dtazJv^g6hS;8+ac+Y*AQyXG>9+cAfy#!B}5Im1E~*L2pI@D59tia zgQP;9Lux{DAiNHfSckdct9kRFg-kWV4+Aa!vEbLI*DOeq>4rYVdU|+B=cpN+qwg=mTKY>4i@nAf7AG{AX1)G9j zgI|Ng!QtR#@G{s9>;~=xcY+hZ3E*GgU!Wyu3C;j#fc~IAco;kkwgKCKtH4!YEEo&k z1Mh(i!G_>sa4|R-91IqMglwivyyzXI!`>lXmdCAru)LtotH_k*ZDt_ziThLk*OoD`;sSXUbsRI?Q!}i z@@JQ#)?`=Nwf^Lk{)I=#2C7qg$h>EpTaYaeY#KyN))i^}AgQ5Bca>m3YF*I2_C~gSdKQ&YBBYP-fwveAIuZ$(Djk!z}m*vaPpd(SemO>$?=(UVC< zj|3J^*(ykaVQU@ok8QiN$%!+!za_6XyBbLbDlXM0pH4hGn^Xs#`->c++89j! z);|xUiCDZwmcN3$<+Ae}sa$!z4_UbIVh=Lm!0GSFzn)zl9SfwVz!gZZmWJHZC_vegv>o!)tL=?($oL^ALP2UGvAQ)TVJk1W;D2>BkNR;`kl<| z7QKM%IXa;xxq8^>@nrRrwztV|O0DOUZPp62EZeZu@>9Bf=G#3Y&#bVTLB>5X`-psB zP)$RQ931(QJRYl_LXL6QHYV>?i%%rSHa+*AywUz_7CCJErCQ{PK38MOr0d&Xldns5 z&mp~cZ*54PpR;}xS-j%H1#;5-)8CQ@3NCt(1D;$DAs@%?JWa+9&i{eDS}m^^+1Gtz z0C}l>&5LAEQ=4_4V68b5OOCe?AWNk&XQ zx%^C0E7JW|+yHW6T8$H=g@5&(buIM^rbfO_nZI&m}c$BVUncOXF3f?@4U~a@;MO<>a4dY8H~=8CCj`1)D59Nmc9E zRpiSCqfU{*{+dAYa#~_fvd`$#Yso9aE)Ty7L-2`Q%1_ z(omY`LfSvswTqlpu;Uo%GJjJT`NN9M4rEpLQ#;7{)e3(l9S2_vC-=k_wIrR!$7~|E z^-&!l&6~!JBp0+#YDae2U41k8?VK9>$)?w<4kL3)%oU{Rr*!3~#ALFmk?wBf{xF54 zM+ddhbo)L_6XkXKs$qlZKDbSc|_mLyh?$T|q)e8N%-b;Co?xnWFM0$SbkSX-{ z_xj6b(_iklQRKHOZOv}Ff4EsJ^zz=Rr^R$TWLy*JsNQ(+65T(p9VycL{xUxwy4#+J z7y7Armpqp4wehY(k4lEMlhfV7+EVC!f`@$_x}UoH3Hz|oa^xYp$Al+8Bwf_;&&Zcg z+wCN`6u5pzrp~h$cCOQM%g^clD}R}=XFGB-ZRt+Gwno?wkCKhu=`Kxwsv~y?6pto9 zZF*4HrS9#n4WYYgNctnvXHukroS_IQAP?DxUnb3F)n7n*?X=AyGm2aOKo%5v>>+C& zT<$>zJ=@uWoV#j~4f)%moVuj7?8FE%z_rkq%#M7MNFEEjnMQ_>+$r?CzIOQvx-ay~ z5#@QY?V@>fhvpWFa#MTFiNkcCd2>_Psrkp>Jg0j^VWhA}&F-eh(|s*3+>2b688Va{ zQpZ-5^TsXtp*Yyux&yLieAidWmwT$f&c7ZtX_v>Euri0Y}L{>W7^o9sMT#MaHG6 zg}r={-piTptpN`1q`s+jGqQ8LI#tLg`FNuizfCy-1IXlSczGN@*OE!2$oEh0-Xr%E zyn9bhoOkLx*<<UwaiLkh5(I^rUy4VNXf(mdZcKeaYH=

GvMbf{}eKA?>u3`>( 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 TeFHfHD}Hri2HnN#{J?$RBig3 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 HBX0J8u=$n? literal 0 HcmV?d00001 diff --git a/test/PrepStmt/client8.cpp b/test/PrepStmt/client8.cpp new file mode 100644 index 000000000..07e1efa3c --- /dev/null +++ b/test/PrepStmt/client8.cpp @@ -0,0 +1,79 @@ +#include "proxysql.h" +#include "cpp.h" + +// dummy copy of client1.cpp + +#define QUERY1 "SELECT * from sbtest limit 10" +MYSQL *mysql; +MYSQL_STMT *stmt; +uint32_t statement_id; +uint16_t num_params; +uint16_t num_columns; +uint16_t warning_count; + +int run_stmt(MYSQL_STMT *stmt, int int_data) { + MYSQL_BIND bind[3]; + MYSQL_RES *prepare_meta_result; + bind[0].buffer_type= MYSQL_TYPE_LONG; + bind[0].buffer= (char *)&int_data; + bind[0].is_null= 0; + bind[0].length= 0; + bind[1].buffer_type= MYSQL_TYPE_LONG; + bind[1].buffer= (char *)&int_data; + bind[1].is_null= 0; + bind[1].length= 0; + bind[2].buffer_type= MYSQL_TYPE_LONG; + bind[2].buffer= (char *)&int_data; + bind[2].is_null= 0; + bind[2].length= 0; +/* + if (mysql_stmt_bind_param(stmt, bind)) { + fprintf(stderr, " mysql_stmt_bind_param() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +*/ + prepare_meta_result = mysql_stmt_result_metadata(stmt); // FIXME: no error check + if (mysql_stmt_execute(stmt)) { + fprintf(stderr, " mysql_stmt_execute(), 1 failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// memset(bind, 0, sizeof(bind)); + if (mysql_stmt_store_result(stmt)) { + fprintf(stderr, " mysql_stmt_store_result() failed\n"); + fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } + mysql_free_result(prepare_meta_result); + return 0; +} + + +int main() { + std::mt19937 mt_rand(time(0)); + mysql = mysql_init(NULL); + if (!mysql_real_connect(mysql,"127.0.0.1","msandbox","msandbox","sbtest",6033,NULL,0)) { + //if (!mysql_real_connect(mysql,"127.0.0.1","root","","test",3306,NULL,0)) { + fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(mysql)); + exit(EXIT_FAILURE); + } + stmt = mysql_stmt_init(mysql); + if (!stmt) { + fprintf(stderr, " mysql_stmt_init(), out of memory\n"); + exit(EXIT_FAILURE); + } + if (mysql_stmt_prepare(stmt, QUERY1, strlen(QUERY1))) { + fprintf(stderr, " mysql_stmt_prepare(), failed: %d, %s\n" , mysql_errno(mysql), mysql_stmt_error(stmt)); + exit(EXIT_FAILURE); + } +// param_count= mysql_stmt_param_count(stmt); +// fprintf(stdout, " total parameters in Query1 : %d\n", param_count); + statement_id=stmt->stmt_id; + num_params=stmt->param_count; + num_columns=stmt->field_count; + warning_count=stmt->upsert_status.warning_count; + fprintf(stdout, "statement_id=%d , columns=%d , params=%d , warnings=%d\n", statement_id, num_columns, num_params, warning_count); + run_stmt(stmt,(uint32_t)mt_rand()); + return 0; +}