mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
48e0325c5e
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.
93 lines
4.1 KiB
Text
93 lines
4.1 KiB
Text
DROP TABLE IF EXISTS t1;
|
|
FLUSH TABLES;
|
|
SELECT * FROM t1;
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
TRUNCATE TABLE t1;
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 analyze error Corrupt
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 check error Corrupt
|
|
OPTIMIZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 optimize Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 optimize error Corrupt
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 repair error Corrupt
|
|
ALTER TABLE t1 REPAIR PARTITION ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 repair error Corrupt
|
|
ALTER TABLE t1 CHECK PARTITION ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 check error Corrupt
|
|
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 optimize Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 optimize error Corrupt
|
|
ALTER TABLE t1 ANALYZE PARTITION ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
test.t1 analyze error Corrupt
|
|
ALTER TABLE t1 REBUILD PARTITION ALL;
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
ALTER TABLE t1 ENGINE Memory;
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
ALTER TABLE t1 ADD (new INT);
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (
|
|
firstname VARCHAR(25) NOT NULL,
|
|
lastname VARCHAR(25) NOT NULL,
|
|
username VARCHAR(16) NOT NULL,
|
|
email VARCHAR(35),
|
|
joined DATE NOT NULL
|
|
)
|
|
PARTITION BY KEY(joined)
|
|
PARTITIONS 6;
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2;
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
drop table t1;
|
|
ERROR 42S02: Unknown table 't1'
|
|
CREATE TABLE t1 (
|
|
firstname VARCHAR(25) NOT NULL,
|
|
lastname VARCHAR(25) NOT NULL,
|
|
username VARCHAR(16) NOT NULL,
|
|
email VARCHAR(35),
|
|
joined DATE NOT NULL
|
|
)
|
|
PARTITION BY RANGE( YEAR(joined) ) (
|
|
PARTITION p0 VALUES LESS THAN (1960),
|
|
PARTITION p1 VALUES LESS THAN (1970),
|
|
PARTITION p2 VALUES LESS THAN (1980),
|
|
PARTITION p3 VALUES LESS THAN (1990),
|
|
PARTITION p4 VALUES LESS THAN MAXVALUE
|
|
);
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
drop table t1;
|
|
ERROR 42S02: Unknown table 't1'
|
|
CREATE TABLE t1 (id INT, purchased DATE)
|
|
PARTITION BY RANGE( YEAR(purchased) )
|
|
SUBPARTITION BY HASH( TO_DAYS(purchased) )
|
|
SUBPARTITIONS 2 (
|
|
PARTITION p0 VALUES LESS THAN (1990),
|
|
PARTITION p1 VALUES LESS THAN (2000),
|
|
PARTITION p2 VALUES LESS THAN MAXVALUE
|
|
);
|
|
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
|
|
drop table t1;
|
|
ERROR 42S02: Unknown table 't1'
|
|
create table t1 (a varchar(10) charset latin1 collate latin1_bin);
|
|
insert into t1 values (''),(' '),('a'),('a '),('a ');
|
|
explain partitions select * from t1 where a='a ' OR a='a';
|
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 5 Using where
|
|
drop table t1;
|