Below is the list of changes that have just been committed into a local
6.0 repository of mhansson. When mhansson 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@stripped, 2008-02-26 15:36:13+01:00, mhansson@riffraff.(none) +3 -0
Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY
When swapping out heap I_S tables to disk, this is done after plan refinement.
Thus, READ_RECORD::file will still point to the (deleted) heap handler at start
of execution. This causes segmentation fault if join buffering is used and the
query is a star query where the result is found to be empty before accessing
some table. In this case that table has not been initialized (i.e. had its
READ_RECORD re-initialized) before the cleanup routine tries to close the handler.
Fixed by updating READ_RECORD::file when changing handler.
mysql-test/r/information_schema_falcon.result@stripped, 2008-02-26 15:36:11+01:00, mhansson@riffraff.(none) +9 -0
Bug#34529:
mysql-test/r/information_schema_falcon.result@stripped, 2008-02-26 15:36:11+01:00, mhansson@riffraff.(none) +0 -0
mysql-test/t/information_schema_falcon.test@stripped, 2008-02-26 15:36:11+01:00, mhansson@riffraff.(none) +17 -0
Bug#34529:
mysql-test/t/information_schema_falcon.test@stripped, 2008-02-26 15:36:11+01:00, mhansson@riffraff.(none) +0 -0
sql/sql_show.cc@stripped, 2008-02-26 15:36:11+01:00, mhansson@riffraff.(none) +1 -0
Bug#34529: The fix.
diff -Nrup a/mysql-test/r/information_schema_falcon.result b/mysql-test/r/information_schema_falcon.result
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/r/information_schema_falcon.result 2008-02-26 15:36:11 +01:00
@@ -0,0 +1,9 @@
+USE information_schema;
+SET max_heap_table_size = 0;
+CREATE TABLE test.t1 ( a INT ) ENGINE = falcon;
+SELECT *
+FROM falcon_tables ft
+JOIN falcon_serial_log_info fsli ON ( ft.tablespace = fsli.database )
+JOIN falcon_transactions ftr ON ( ft.tablespace = ftr.database );
+SCHEMA_NAME TABLE_NAME PARTITION TABLESPACE INTERNAL_NAME DATABASE TRANSACTIONS BLOCKS WINDOWS BUFFERS DATABASE THREAD_ID ID STATE UPDATES PENDING DEP OLDEST RECORDS WAITING_FOR STATEMENT
+DROP TABLE test.t1;
diff -Nrup a/mysql-test/t/information_schema_falcon.test b/mysql-test/t/information_schema_falcon.test
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/t/information_schema_falcon.test 2008-02-26 15:36:11 +01:00
@@ -0,0 +1,17 @@
+-- source include/have_falcon.inc
+#
+# Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY
+#
+USE information_schema;
+--disable_warnings
+SET max_heap_table_size = 0;
+--enable_warnings
+
+CREATE TABLE test.t1 ( a INT ) ENGINE = falcon;
+
+SELECT *
+FROM falcon_tables ft
+JOIN falcon_serial_log_info fsli ON ( ft.tablespace = fsli.database )
+JOIN falcon_transactions ftr ON ( ft.tablespace = ftr.database );
+
+DROP TABLE test.t1;
diff -Nrup a/sql/sql_show.cc b/sql/sql_show.cc
--- a/sql/sql_show.cc 2008-02-22 13:51:26 +01:00
+++ b/sql/sql_show.cc 2008-02-26 15:36:11 +01:00
@@ -6241,6 +6241,7 @@ bool get_schema_tables_result(JOIN *join
table_list->schema_table_state= executed_place;
break;
}
+ tab->read_record.file= table_list->table->file;
table_list->schema_table_state= executed_place;
}
}
| Thread |
|---|
| • bk commit into 6.0 tree (mhansson:1.2591) BUG#34529 | mhansson | 26 Feb |