1
--disable_abort_on_error
2
# Run this test only when mysqld don't has partitioning (not compiled with)
3
# the statements are not expected to work, just check that we
4
# can't crash the server
5
-- require r/not_partition.require
7
show variables like "have_partitioning";
10
DROP TABLE IF EXISTS t1;
12
let $MYSQLD_DATADIR= `SELECT @@datadir`;
15
# Bug#39893: Crash if select on a partitioned table,
16
# when partitioning is disabled
18
--copy_file $MYSQLTEST_VARDIR/std_data/parts/t1.frm $MYSQLD_DATADIR/test/t1.frm
25
ALTER TABLE t1 REPAIR PARTITION ALL;
26
ALTER TABLE t1 CHECK PARTITION ALL;
27
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
28
ALTER TABLE t1 ANALYZE PARTITION ALL;
29
ALTER TABLE t1 REBUILD PARTITION ALL;
30
ALTER TABLE t1 ENGINE Memory;
31
ALTER TABLE t1 ADD (new INT);
34
--error ER_FEATURE_DISABLED
36
firstname VARCHAR(25) NOT NULL,
37
lastname VARCHAR(25) NOT NULL,
38
username VARCHAR(16) NOT NULL,
42
PARTITION BY KEY(joined)
45
--error ER_FEATURE_DISABLED
46
ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2;
48
--error ER_BAD_TABLE_ERROR
51
--error ER_FEATURE_DISABLED
53
firstname VARCHAR(25) NOT NULL,
54
lastname VARCHAR(25) NOT NULL,
55
username VARCHAR(16) NOT NULL,
59
PARTITION BY RANGE( YEAR(joined) ) (
60
PARTITION p0 VALUES LESS THAN (1960),
61
PARTITION p1 VALUES LESS THAN (1970),
62
PARTITION p2 VALUES LESS THAN (1980),
63
PARTITION p3 VALUES LESS THAN (1990),
64
PARTITION p4 VALUES LESS THAN MAXVALUE
66
--error ER_BAD_TABLE_ERROR
69
--error ER_FEATURE_DISABLED
70
CREATE TABLE t1 (id INT, purchased DATE)
71
PARTITION BY RANGE( YEAR(purchased) )
72
SUBPARTITION BY HASH( TO_DAYS(purchased) )
74
PARTITION p0 VALUES LESS THAN (1990),
75
PARTITION p1 VALUES LESS THAN (2000),
76
PARTITION p2 VALUES LESS THAN MAXVALUE
78
--error ER_BAD_TABLE_ERROR
81
# Create a table without partitions to test "EXPLAIN PARTITIONS"
82
create table t1 (a varchar(10) charset latin1 collate latin1_bin);
83
insert into t1 values (''),(' '),('a'),('a '),('a ');
84
explain partitions select * from t1 where a='a ' OR a='a';