summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-07-01 01:52:05 +0300
committerunknown <bell@sanja.is.com.ua>2004-07-01 01:52:05 +0300
commitc92670d80b3674fa025e373e0498eccbb407f873 (patch)
treeecefd13b04f2de8e7b4f2ddf9b370a3344e3b8d0 /sql
parentba4bd06f75076f96eac0d2a5521efe62d1444722 (diff)
downloadmariadb-git-c92670d80b3674fa025e373e0498eccbb407f873.tar.gz
fixed WHERE condition optimisation in PS
sql/sql_prepare.cc: reset current_select before query rexecution assirn prepared statement arena in time of execution
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_prepare.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index 87fb379321f..a8a2f5e8515 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -1584,6 +1584,7 @@ void reset_stmt_for_execute(THD *thd, LEX *lex)
unit->reinit_exec_mechanism();
}
}
+ lex->current_select= &lex->select_lex;
}
@@ -1666,10 +1667,12 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
mysql_delete(), mysql_update() and mysql_select() to not to
have re-check on setup_* and other things ..
*/
+ thd->current_arena= stmt;
thd->protocol= &thd->protocol_prep; // Switch to binary protocol
mysql_execute_command(thd);
thd->lex->unit.cleanup();
thd->protocol= &thd->protocol_simple; // Use normal protocol
+ thd->current_arena= 0;
if (!(specialflag & SPECIAL_NO_PRIOR))
my_pthread_setprio(pthread_self(), WAIT_PRIOR);