Commit 7d20900c authored by hf@deer.mysql.r18.ru's avatar hf@deer.mysql.r18.ru

Merge abotchkov@work.mysql.com:/home/bk/mysql-4.1

into deer.mysql.r18.ru:/home/hf/work/mysql-4.1.w1
parents e757e47e fc945987
......@@ -2513,11 +2513,6 @@ ha_innobase::change_active_index(
the flag ROW_MYSQL_WHOLE_ROW below, but that caused unnecessary
copying. Starting from MySQL-4.1 we use a more efficient flag here. */
/*
TODO: In 4.0 the below user_thd was changed to NULL.
Heikki, please delete this comment after you have read this and may
acted upon it.
*/
build_template(prebuilt, user_thd, table, ROW_MYSQL_REC_FIELDS);
DBUG_RETURN(0);
......
......@@ -1206,6 +1206,29 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
mysql_log.write(thd,command,"%s",thd->query);
DBUG_PRINT("query",("%-.4096s",thd->query));
mysql_parse(thd,thd->query, thd->query_length);
while (!thd->fatal_error && thd->lex.found_colon)
{
/*
Multiple queries exits, execute them individually
*/
if (thd->lock || thd->open_tables || thd->derived_tables)
close_thread_tables(thd);
uint length= thd->query_length-(uint)(thd->lex.found_colon-thd->query);
/* Remove garbage at start of query */
char *packet= thd->lex.found_colon;
while (my_isspace(system_charset_info,packet[0]) && length > 0)
{
packet++;
length--;
}
thd->query= packet;
thd->query_length= length;
mysql_parse(thd, packet, length);
}
if (!(specialflag & SPECIAL_NO_PRIOR))
my_pthread_setprio(pthread_self(),WAIT_PRIOR);
DBUG_PRINT("info",("query ready"));
......@@ -1438,14 +1461,6 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
mysql_slow_log.write(thd, thd->query, thd->query_length, start_of_query);
}
}
if (command == COM_QUERY && thd->lex.found_colon)
{
/*
Multiple queries exits, execute them individually
*/
uint length= thd->query_length-(uint)(thd->lex.found_colon-thd->query)+1;
dispatch_command(command, thd, thd->lex.found_colon, length);
}
thd->proc_info="cleaning up";
VOID(pthread_mutex_lock(&LOCK_thread_count)); // For process list
thd->proc_info=0;
......@@ -1476,7 +1491,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
bool alloc_query(THD *thd, char *packet, ulong packet_length)
{
packet_length--; // Remove end null
/* Remove garage at start and end of query */
/* Remove garbage at start and end of query */
while (my_isspace(system_charset_info,packet[0]) && packet_length > 0)
{
packet++;
......
......@@ -30,7 +30,11 @@ This file contains the implementation of prepare and executes.
- Without executing the query, return back to client the total
number of parameters along with result-set metadata information
(if any) in the following format:
[STMT_ID:4][Columns:2][Param_count:2][Columns meta info][Params meta info]
[STMT_ID:4]
[Column_count:2]
[Param_count:2]
[Columns meta info] (if Column_count > 0)
[Params meta info] (if Param_count > 0 ) (TODO : 4.1.1)
Prepare-execute:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment