mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
175 lines
4.4 KiB
Text
175 lines
4.4 KiB
Text
#--disable_abort_on_error
|
|
#
|
|
# Simple test for the partition storage engine
|
|
# Taken fromm the select test
|
|
#
|
|
-- source include/have_partition.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
#
|
|
# Bug#30822: crash when COALESCE
|
|
#
|
|
CREATE TABLE t1 (c1 INT)
|
|
PARTITION BY HASH (c1)
|
|
PARTITIONS 15;
|
|
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
|
|
ALTER TABLE t1 COALESCE PARTITION 13;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (c1 INT)
|
|
PARTITION BY LINEAR HASH (c1)
|
|
PARTITIONS 5;
|
|
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
|
|
ALTER TABLE t1 COALESCE PARTITION 3;
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# More partition pruning tests, especially on interval walking
|
|
#
|
|
create table t1 (a int unsigned)
|
|
partition by hash(a div 2)
|
|
partitions 4;
|
|
insert into t1 values (null),(0),(1),(2),(3),(4),(5),(6),(7);
|
|
select * from t1 where a < 0;
|
|
select * from t1 where a is null or (a >= 5 and a <= 7);
|
|
select * from t1 where a is null;
|
|
select * from t1 where a is not null;
|
|
select * from t1 where a >= 1 and a < 3;
|
|
select * from t1 where a >= 3 and a <= 5;
|
|
select * from t1 where a > 2 and a < 4;
|
|
select * from t1 where a > 3 and a <= 6;
|
|
select * from t1 where a > 5;
|
|
select * from t1 where a >= 1 and a <= 5;
|
|
explain partitions select * from t1 where a < 0;
|
|
explain partitions select * from t1 where a is null or (a >= 5 and a <= 7);
|
|
explain partitions select * from t1 where a is null;
|
|
explain partitions select * from t1 where a is not null;
|
|
explain partitions select * from t1 where a >= 1 and a < 3;
|
|
explain partitions select * from t1 where a >= 3 and a <= 5;
|
|
explain partitions select * from t1 where a > 2 and a < 4;
|
|
explain partitions select * from t1 where a > 3 and a <= 6;
|
|
explain partitions select * from t1 where a > 5;
|
|
explain partitions select * from t1 where a >= 1 and a <= 5;
|
|
|
|
drop table t1;
|
|
|
|
#
|
|
# Partition by hash, basic
|
|
#
|
|
CREATE TABLE t1 (
|
|
a int not null,
|
|
b int not null,
|
|
c int not null,
|
|
primary key(a,b))
|
|
partition by hash (a + 2)
|
|
partitions 3
|
|
(partition x1 tablespace ts1,
|
|
partition x2 tablespace ts2,
|
|
partition x3 tablespace ts3);
|
|
|
|
insert into t1 values (1,1,1);
|
|
insert into t1 values (2,1,1);
|
|
insert into t1 values (3,1,1);
|
|
insert into t1 values (4,1,1);
|
|
insert into t1 values (5,1,1);
|
|
|
|
select * from t1;
|
|
|
|
update t1 set c=3 where b=1;
|
|
select * from t1;
|
|
|
|
select b from t1 where a=3;
|
|
select b,c from t1 where a=1 AND b=1;
|
|
|
|
delete from t1 where a=1;
|
|
delete from t1 where c=3;
|
|
|
|
select * from t1;
|
|
|
|
ALTER TABLE t1
|
|
partition by hash (a + 3)
|
|
partitions 3
|
|
(partition x1 tablespace ts1,
|
|
partition x2 tablespace ts2,
|
|
partition x3 tablespace ts3);
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Partition by hash, only one partition
|
|
#
|
|
CREATE TABLE t1 (
|
|
a int not null,
|
|
b int not null,
|
|
c int not null,
|
|
primary key(a,b))
|
|
partition by hash (a)
|
|
(partition x1);
|
|
|
|
drop table t1;
|
|
#
|
|
# Partition by key, only one partition
|
|
#
|
|
CREATE TABLE t1 (
|
|
a int not null,
|
|
b int not null,
|
|
c int not null,
|
|
primary key(a,b))
|
|
partition by key (a)
|
|
(partition x1);
|
|
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug# 15968 - crash when INSERT with f1 = -1 into partition by hash(f1)
|
|
#
|
|
CREATE TABLE t1 (f1 INTEGER, f2 char(20)) ENGINE = 'MYISAM' PARTITION BY HASH(f1) PARTITIONS 2;
|
|
INSERT INTO t1 SET f1 = 0 - 1, f2 = '#######';
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# BUG# 14524 Partitions: crash if blackhole
|
|
#
|
|
# Disable warnings to allow this test case to run without
|
|
# the Blackhole storage engine.
|
|
set sql_mode="";
|
|
--disable_warnings
|
|
CREATE TABLE t1 (s1 int) ENGINE=BLACKHOLE PARTITION BY HASH (s1);
|
|
--enable_warnings
|
|
--error 0,ER_BINLOG_LOGGING_IMPOSSIBLE
|
|
INSERT INTO t1 VALUES (0);
|
|
DROP TABLE t1;
|
|
set sql_mode=default;
|
|
|
|
#
|
|
# BUG 18423 Hash partitioning can lose rows in some queries
|
|
#
|
|
create table t1 (c1 int DEFAULT NULL,
|
|
c2 varchar (30) DEFAULT NULL,
|
|
c3 date DEFAULT NULL)
|
|
engine = myisam
|
|
partition by hash (to_days(c3))
|
|
partitions 12;
|
|
|
|
insert into t1 values
|
|
(136,'abc','2002-01-05'),(142,'abc','2002-02-14'),(162,'abc','2002-06-28'),
|
|
(182,'abc','2002-11-09'),(158,'abc','2002-06-01'),(184,'abc','2002-11-22');
|
|
select * from t1;
|
|
select * from t1 where c3 between '2002-01-01' and '2002-12-31';
|
|
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug#31210 - INSERT DELAYED crashes server when used on partitioned table
|
|
#
|
|
CREATE TABLE t1 (c1 INT) ENGINE=MyISAM PARTITION BY HASH(c1) PARTITIONS 1;
|
|
# The test succeeds in an embedded server because normal insert is done.
|
|
# The test fails in a normal server with
|
|
# "DELAYED option not supported by table".
|
|
--error 0, ER_DELAYED_NOT_SUPPORTED
|
|
INSERT DELAYED INTO t1 VALUES (1);
|
|
DROP TABLE t1;
|
|
|