summaryrefslogtreecommitdiff
path: root/sql/sql_show.cc
diff options
context:
space:
mode:
authorunknown <gluh@eagle.intranet.mysql.r18.ru>2005-04-05 16:09:56 +0500
committerunknown <gluh@eagle.intranet.mysql.r18.ru>2005-04-05 16:09:56 +0500
commitb419262fe49bb3cc84f496e913edd3f1baf25283 (patch)
tree2180b6ef515c7b36355738f859483437199f0a52 /sql/sql_show.cc
parent4963a9c853b341528e2e75e35f3efdcd63eae881 (diff)
downloadmariadb-git-b419262fe49bb3cc84f496e913edd3f1baf25283.tar.gz
Fix for bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement
restore original 'lex->query_tables' table list after processing of information schema table remove unnecessary operations mysql-test/r/ps.result: Fix for bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement mysql-test/t/ps.test: Fix for bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement sql/sql_lex.h: Fix for bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement sql/sql_show.cc: Fix for bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r--sql/sql_show.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index d92613bd633..d2cab6bf49f 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -3442,12 +3442,11 @@ bool get_schema_tables_result(JOIN *join)
TABLE_LIST *table_list= tab->table->pos_in_table_list;
if (table_list->schema_table && thd->fill_derived_tables())
{
- TABLE_LIST *save_next_global= table_list->next_global;
TABLE_LIST **query_tables_last= lex->query_tables_last;
TABLE *old_derived_tables= thd->derived_tables;
MYSQL_LOCK *sql_lock= thd->lock;
lex->sql_command= SQLCOM_SHOW_FIELDS;
-
+ DBUG_ASSERT(!*query_tables_last);
if (&lex->unit != lex->current_select->master_unit()) // is subselect
{
table_list->table->file->extra(HA_EXTRA_RESET_STATE);
@@ -3466,8 +3465,8 @@ bool get_schema_tables_result(JOIN *join)
thd->lock= sql_lock;
lex->sql_command= SQLCOM_SELECT;
thd->derived_tables= old_derived_tables;
- table_list->next_global= save_next_global;
lex->query_tables_last= query_tables_last;
+ *query_tables_last= 0;
}
}
thd->no_warnings_for_error= 0;