From: Date: April 1 2005 9:13am Subject: bk commit into 5.0 tree (gluh:1.1843) BUG#9383 List-Archive: http://lists.mysql.com/internals/23553 X-Bug: 9383 Message-Id: <200504010713.j317DnOG014462@eagle.intranet.mysql.r18.ru> Below is the list of changes that have just been committed into a local 5.0 repository of gluh. When gluh does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.1843 05/04/01 12:13:43 gluh@stripped +4 -0 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 BitKeeper/etc/logging_ok 1.311 05/04/01 12:13:42 gluh@stripped +1 -0 Logging to logging@stripped accepted sql/sql_show.cc 1.230 05/04/01 12:11:50 gluh@stripped +1 -2 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/t/ps.test 1.34 05/04/01 12:11:50 gluh@stripped +21 -0 Fix for bug#9383:INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement mysql-test/r/ps.result 1.35 05/04/01 12:11:50 gluh@stripped +18 -0 Fix for bug#9383:INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: gluh # Host: eagle.intranet.mysql.r18.ru # Root: /home/gluh/MySQL/Bugs/mysql-5.0.9383 --- 1.229/sql/sql_show.cc Fri Mar 25 16:09:15 2005 +++ 1.230/sql/sql_show.cc Fri Apr 1 12:11:50 2005 @@ -3434,7 +3434,6 @@ 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; @@ -3458,8 +3457,8 @@ 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; --- 1.310/BitKeeper/etc/logging_ok Wed Mar 30 17:13:56 2005 +++ 1.311/BitKeeper/etc/logging_ok Fri Apr 1 12:13:42 2005 @@ -56,6 +56,7 @@ georg@stripped georg@stripped gerberb@stripped +gluh@stripped gluh@gluh.(none) gluh@stripped gordon@stripped --- 1.34/mysql-test/r/ps.result Thu Mar 3 17:39:22 2005 +++ 1.35/mysql-test/r/ps.result Fri Apr 1 12:11:50 2005 @@ -524,3 +524,21 @@ a b c a b c deallocate prepare stmt; drop table t1,t2; +SET @aux= "SELECT COUNT(*) + FROM INFORMATION_SCHEMA.COLUMNS A, + INFORMATION_SCHEMA.COLUMNS B + WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA + AND A.TABLE_NAME = B.TABLE_NAME + AND A.COLUMN_NAME = B.COLUMN_NAME AND + A.TABLE_NAME = 'user'"; +prepare my_stmt from @aux; +execute my_stmt; +COUNT(*) +37 +execute my_stmt; +COUNT(*) +37 +execute my_stmt; +COUNT(*) +37 +deallocate prepare my_stmt; --- 1.33/mysql-test/t/ps.test Thu Mar 3 17:39:22 2005 +++ 1.34/mysql-test/t/ps.test Fri Apr 1 12:11:50 2005 @@ -540,3 +540,24 @@ drop table t1,t2; + +# +# Bug#9383: INFORMATION_SCHEMA.COLUMNS, JOIN, Crash, prepared statement +# + +eval SET @aux= "SELECT COUNT(*) + FROM INFORMATION_SCHEMA.COLUMNS A, + INFORMATION_SCHEMA.COLUMNS B + WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA + AND A.TABLE_NAME = B.TABLE_NAME + AND A.COLUMN_NAME = B.COLUMN_NAME AND + A.TABLE_NAME = 'user'"; + +let $exec_loop_count= 3; +eval prepare my_stmt from @aux; +while ($exec_loop_count) +{ + eval execute my_stmt; + dec $exec_loop_count; +} +deallocate prepare my_stmt;