diff options
author | unknown <mhansson/martin@riffraff.(none)> | 2008-03-19 14:32:28 +0100 |
---|---|---|
committer | unknown <mhansson/martin@riffraff.(none)> | 2008-03-19 14:32:28 +0100 |
commit | 3c5894baaa9dcc2d910d504ef073facfcd329f8e (patch) | |
tree | 87bc8fa431b934fa38bfb46ea4fc91fe7715403f /sql/sql_show.cc | |
parent | 99c0b5e10ff2f64df6b3d90096be0ece31130dcb (diff) | |
download | mariadb-git-3c5894baaa9dcc2d910d504ef073facfcd329f8e.tar.gz |
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.result:
Bug#34529: Test result.
mysql-test/t/information_schema.test:
Bug#34529: Test case.
sql/sql_show.cc:
Bug#34529: The fix.
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r-- | sql/sql_show.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 36d154181f8..a80319785bd 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -4073,9 +4073,11 @@ bool get_schema_tables_result(JOIN *join, { result= 1; join->error= 1; + tab->read_record.file= table_list->table->file; table_list->schema_table_state= executed_place; break; } + tab->read_record.file= table_list->table->file; table_list->schema_table_state= executed_place; } } |