From 32ace686f31169ae116ade33396c230d22bac5db Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 3 Oct 2003 17:09:54 +0500 Subject: [PATCH] sql_cache.cc, mysql_priv.h: Query cache now takes in account character_set_results and collation_connection sql/mysql_priv.h: Query cache now takes in account character_set_results and collation_connection sql/sql_cache.cc: Query cache now takes in account character_set_results and collation_connection --- sql/mysql_priv.h | 4 +++- sql/sql_cache.cc | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 4bd273ec6ac..6e0a120fcb5 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -325,7 +325,9 @@ typedef compare_func_creator (*chooser_compare_func_creator)(bool invert); struct Query_cache_query_flags { unsigned int client_long_flag:1; - uint charset_num; + uint character_set_client_num; + uint character_set_results_num; + uint collation_connection_num; ha_rows limit; }; #define QUERY_CACHE_FLAGS_SIZE sizeof(Query_cache_query_flags) diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 07df0f51600..069887e689e 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -770,7 +770,9 @@ void Query_cache::store_query(THD *thd, TABLE_LIST *tables_used) bzero(&flags, QUERY_CACHE_FLAGS_SIZE); flags.client_long_flag= (thd->client_capabilities & CLIENT_LONG_FLAG ? 1 : 0); - flags.charset_num= thd->charset()->number; + flags.character_set_client_num= thd->variables.character_set_client->number; + flags.character_set_results_num= thd->variables.character_set_results->number; + flags.collation_connection_num= thd->variables.collation_connection->number; flags.limit= thd->variables.select_limit; STRUCT_LOCK(&structure_guard_mutex); @@ -950,7 +952,9 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length) bzero(&flags, QUERY_CACHE_FLAGS_SIZE); flags.client_long_flag= (thd->client_capabilities & CLIENT_LONG_FLAG ? 1 : 0); - flags.charset_num= thd->charset()->number; + flags.character_set_client_num= thd->variables.character_set_client->number; + flags.character_set_results_num= thd->variables.character_set_results->number; + flags.collation_connection_num= thd->variables.collation_connection->number; flags.limit= thd->variables.select_limit; memcpy((void *)(sql + (tot_length - QUERY_CACHE_FLAGS_SIZE)), &flags, QUERY_CACHE_FLAGS_SIZE); @@ -3105,7 +3109,7 @@ void Query_cache::queries_dump() str[len]= 0; // make zero ending DB name DBUG_PRINT("qcache", ("F:%u C:%u L:%lu (%u) '%s' '%s'", flags.client_long_flag, - flags.charset_num, (ulong)flags.limit, + flags.character_set_client_num, (ulong)flags.limit, len, str, strend(str)+1)); DBUG_PRINT("qcache", ("-b- 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx", (ulong) block, (ulong) block->next, (ulong) block->prev,