1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

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.
This commit is contained in:
Mattias Jonsson
2009-01-08 15:16:44 +01:00
parent 47c0ec5084
commit 48e0325c5e
9 changed files with 261 additions and 3 deletions

View File

@ -1,3 +1,48 @@
DROP TABLE IF EXISTS t1;
FLUSH TABLES;
SELECT * FROM t1;
ERROR 42000: Unknown table engine 'partition'
TRUNCATE TABLE t1;
ERROR 42000: Unknown table engine 'partition'
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze Error Unknown table engine 'partition'
test.t1 analyze error Corrupt
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check Error Unknown table engine 'partition'
test.t1 check error Corrupt
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize Error Unknown table engine 'partition'
test.t1 optimize error Corrupt
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair Error Unknown table engine 'partition'
test.t1 repair error Corrupt
ALTER TABLE t1 REPAIR PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 repair Error Unknown table engine 'partition'
test.t1 repair error Corrupt
ALTER TABLE t1 CHECK PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 check Error Unknown table engine 'partition'
test.t1 check error Corrupt
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 optimize Error Unknown table engine 'partition'
test.t1 optimize error Corrupt
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 analyze Error Unknown table engine 'partition'
test.t1 analyze error Corrupt
ALTER TABLE t1 REBUILD PARTITION ALL;
ERROR 42000: Unknown table engine 'partition'
ALTER TABLE t1 ENGINE Memory;
ERROR 42000: Unknown table engine 'partition'
ALTER TABLE t1 ADD (new INT);
ERROR 42000: Unknown table engine 'partition'
DROP TABLE t1;
CREATE TABLE t1 (
firstname VARCHAR(25) NOT NULL,
lastname VARCHAR(25) NOT NULL,