diff options
author | unknown <gluh@eagle.intranet.mysql.r18.ru> | 2005-04-05 16:09:56 +0500 |
---|---|---|
committer | unknown <gluh@eagle.intranet.mysql.r18.ru> | 2005-04-05 16:09:56 +0500 |
commit | b419262fe49bb3cc84f496e913edd3f1baf25283 (patch) | |
tree | 2180b6ef515c7b36355738f859483437199f0a52 /sql/sql_show.cc | |
parent | 4963a9c853b341528e2e75e35f3efdcd63eae881 (diff) | |
download | mariadb-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.cc | 5 |
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; |