diff options
author | Mattias Jonsson <mattias.jonsson@sun.com> | 2009-01-08 15:16:44 +0100 |
---|---|---|
committer | Mattias Jonsson <mattias.jonsson@sun.com> | 2009-01-08 15:16:44 +0100 |
commit | 48e0325c5e22aef8faca34672c30873c361412e1 (patch) | |
tree | b91791fcbe0d55ca4236c4e6639f35ebd4a07b48 /sql/table.cc | |
parent | 47c0ec508467b4941e6e388e33dc688b7247befb (diff) | |
download | mariadb-git-48e0325c5e22aef8faca34672c30873c361412e1.tar.gz |
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
Problem was that it tried to run partitioning function calls when
opening a partitioned table, when it was explicitly disabled.
Solution is to check if the partitioning plugin is ready to use before
using any partitioning specific calls.
mysql-test/r/disabled_partition.require:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
New require file to use when partitioning is disabled (but compiled in)
mysql-test/r/not_partition.result:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
Updated testcase
mysql-test/r/partition_disabled.result:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
New result file
mysql-test/std_data/parts/t1.frm:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
frm file for 'create table t1 (a int) partition by hash (a)'
mysql-test/t/not_partition.test:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
Updated test cases
mysql-test/t/partition_disabled-master.opt:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
New opt file
mysql-test/t/partition_disabled.test:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
New test file (looks like not_partition.test, but with different errors)
sql/sql_yacc.yy:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
Better error message (it is already built with partitioning, but is explicitly
disabled).
sql/table.cc:
Bug#39893: Crash if select on a partitioned table, when partitioning is disabled
If the partitioning plugin is not ready, fail to open the table.
Diffstat (limited to 'sql/table.cc')
-rw-r--r-- | sql/table.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/table.cc b/sql/table.cc index 95753e5353a..bf3c3711f31 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -914,6 +914,15 @@ static int open_binary_frm(THD *thd, TABLE_SHARE *share, uchar *head, we unlock the old value of share->db_plugin before replacing it with a globally locked version of tmp_plugin */ + /* Check if the partitioning engine is ready */ + if (!plugin_is_ready(&name, MYSQL_STORAGE_ENGINE_PLUGIN)) + { + error= 8; + my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), + "--skip-partition"); + my_free(buff, MYF(0)); + goto err; + } plugin_unlock(NULL, share->db_plugin); share->db_plugin= ha_lock_engine(NULL, partition_hton); DBUG_PRINT("info", ("setting dbtype to '%.*s' (%d)", |