summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorunknown <tsmith@ramayana.hindu.god>2007-08-27 14:31:27 -0600
committerunknown <tsmith@ramayana.hindu.god>2007-08-27 14:31:27 -0600
commit61e988e712ed82542ebc1d867a21e71f3103a0f7 (patch)
tree679a96401bec41e2c195429ae868169f2520ef9b /libmysqld
parentad4ee2067349fa7e6d3810b4fe05692cf9b19acf (diff)
downloadmariadb-git-61e988e712ed82542ebc1d867a21e71f3103a0f7.tar.gz
Bug #30389: connection_id() always return 0 in embedded server
Initialize thd->variables.pseudo_thread_id when a new embedded thd is created. libmysqld/lib_sql.cc: Add comment regarding duplication of code in create_embedded_thd() vs. create_new_thread() and prepare_new_connection_state(). This was a cause for not properly initializing the pseudo_thread_id variable. mysql-test/r/func_misc.result: Add test case to ensure connection_id() returns a sane value mysql-test/t/func_misc.test: Add test case to ensure connection_id() returns a sane value sql/mysqld.cc: Add comment warning of the duplication of code between create_new_thread() and create_embedded_thd() sql/sql_connect.cc: Add comment warning of the duplication of code between prepare_new_connection_state() and create_embedded_thd()
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/lib_sql.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 42d2752f6e1..9c26febe627 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -564,6 +564,17 @@ void init_embedded_mysql(MYSQL *mysql, int client_flag)
init_alloc_root(&mysql->field_alloc, 8192, 0);
}
+/**
+ @brief Initialize a new THD for a connection in the embedded server
+
+ @param client_flag Client capabilities which this thread supports
+ @return pointer to the created THD object
+
+ @todo
+ This function copies code from several places in the server, including
+ create_new_thread(), and prepare_new_connection_state(). This should
+ be refactored to avoid code duplication.
+*/
void *create_embedded_thd(int client_flag)
{
THD * thd= new THD;