mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Many files:
Adding back ndb partition tests from mysql-test-extra per tomas and clavin new file
This commit is contained in:
198
mysql-test/t/ndb_partition_key.test
Normal file
198
mysql-test/t/ndb_partition_key.test
Normal file
@@ -0,0 +1,198 @@
|
||||
-- source include/have_ndb.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Basic syntax test
|
||||
#
|
||||
|
||||
# Support for partition key verified
|
||||
CREATE TABLE t1 (a int, b int, c int, d int, PRIMARY KEY(a,b,c))
|
||||
ENGINE = NDB
|
||||
PARTITION BY KEY (a,b);
|
||||
|
||||
insert into t1 values (1,1,1,1);
|
||||
select * from t1;
|
||||
update t1 set d = 2 where a = 1 and b = 1 and c = 1;
|
||||
select * from t1;
|
||||
delete from t1;
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
# only support for partition key on primary key
|
||||
--error ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
|
||||
CREATE TABLE t1 (a int, b int, c int, d int, PRIMARY KEY(a,b))
|
||||
ENGINE = NDB
|
||||
PARTITION BY KEY (c);
|
||||
|
||||
CREATE TABLE t1 (a int, b int, c int, PRIMARY KEY(a,b))
|
||||
ENGINE = NDB
|
||||
PARTITION BY KEY (a);
|
||||
|
||||
insert into t1 values
|
||||
(1,1,3),(1,2,3),(1,3,3),(1,4,3),(1,5,3),(1,6,3),
|
||||
(1,7,3),(1,8,3),(1,9,3),(1,10,3),(1,11,3),(1,12,3);
|
||||
|
||||
select * from t1 order by b;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Test partition and char support
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a INT, b CHAR(10) COLLATE latin1_bin, c INT, d INT,
|
||||
PRIMARY KEY (a,b,c) USING HASH)
|
||||
ENGINE=NDB
|
||||
DEFAULT CHARSET=latin1
|
||||
PARTITION BY KEY (b);
|
||||
|
||||
insert into t1 values (1,"a",1,1),(2,"a",1,1),(3,"a",1,1);
|
||||
|
||||
# should show only one attribute with DISTRIBUTION KEY
|
||||
--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | sed 's/Version: [0-9]*//' | sed 's/\(Length of frm data: \)[0-9]*/\1#/'
|
||||
|
||||
#
|
||||
# Test that explicit partition info is not shown in show create table
|
||||
# result should not contain (PARTITION P0 ... etc) since this is what shows up in
|
||||
# mysqldump, and we don't want that info there
|
||||
#
|
||||
show create table t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #13155: Problem in Create Table using SHOW CREATE TABLE syntax
|
||||
#
|
||||
CREATE TABLE t1 (a int not null primary key)
|
||||
PARTITION BY KEY(a)
|
||||
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
|
||||
|
||||
drop table t1;
|
||||
|
||||
CREATE TABLE t1 (a int not null primary key);
|
||||
ALTER TABLE t1
|
||||
PARTITION BY KEY(a)
|
||||
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #17754 Improper handling of removal of partitioning in ALTER TABLE
|
||||
# Also added a number of general test cases in the same area
|
||||
#
|
||||
create table t1 (a int)
|
||||
engine=ndb
|
||||
partition by key(a)
|
||||
(partition p0, partition p1);
|
||||
show create table t1;
|
||||
|
||||
alter table t1 engine=heap;
|
||||
show create table t1;
|
||||
|
||||
alter table t1 engine=ndb;
|
||||
show create table t1;
|
||||
|
||||
alter table t1 engine=heap remove partitioning;
|
||||
show create table t1;
|
||||
|
||||
alter table t1 engine=ndb
|
||||
partition by key(a)
|
||||
(partition p0, partition p1 engine = ndb);
|
||||
show create table t1;
|
||||
|
||||
alter table t1
|
||||
partition by key (a)
|
||||
(partition p0 engine=ndb, partition p1 engine=ndb);
|
||||
show create table t1;
|
||||
|
||||
alter table t1 remove partitioning;
|
||||
show create table t1;
|
||||
|
||||
--error ER_MIX_HANDLER_ERROR
|
||||
alter table t1
|
||||
partition by key(a)
|
||||
(partition p0 engine=ndb, partition p1);
|
||||
|
||||
alter table t1
|
||||
engine=ndb
|
||||
partition by key(a)
|
||||
(partition p0 engine=ndb, partition p1 engine = ndb);
|
||||
show create table t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 16810 Out of memory when coalesce partition
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
c1 MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
c2 TEXT NOT NULL,
|
||||
c3 INT NOT NULL,
|
||||
c4 BIT NOT NULL,
|
||||
c5 FLOAT,
|
||||
c6 VARCHAR(255),
|
||||
c7 TIMESTAMP,
|
||||
PRIMARY KEY(c1,c3))
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY(c3) PARTITIONS 5;
|
||||
|
||||
let $j= 11;
|
||||
--disable_query_log
|
||||
while ($j)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES (NULL, "Tested Remotely from Texas, USA", $j,
|
||||
b'0',
|
||||
$j.00,"By JBM $j","2006-01-26");
|
||||
dec $j;
|
||||
}
|
||||
--enable_query_log
|
||||
ALTER TABLE t1 COALESCE PARTITION 4;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug 16822: OPTIMIZE TABLE hangs test
|
||||
#
|
||||
CREATE TABLE t1 (a int primary key)
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY(a);
|
||||
--error 1031
|
||||
ALTER TABLE t1 OPTIMIZE PARTITION p0;
|
||||
--error 1031
|
||||
ALTER TABLE t1 CHECK PARTITION p0;
|
||||
--error 1031
|
||||
ALTER TABLE t1 REPAIR PARTITION p0;
|
||||
--error 1031
|
||||
ALTER TABLE t1 ANALYZE PARTITION p0;
|
||||
--error 1031
|
||||
ALTER TABLE t1 REBUILD PARTITION p0;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# BUG 16806: ALTER TABLE fails
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
c1 MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
c2 TEXT NOT NULL,
|
||||
c3 INT NOT NULL,
|
||||
PRIMARY KEY(c1,c3))
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY(c3) PARTITIONS 5;
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN c4 INT AFTER c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
c1 MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
c2 TEXT NOT NULL,
|
||||
c3 INT NOT NULL,
|
||||
PRIMARY KEY(c1,c3))
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY(c3);
|
||||
|
||||
ALTER TABLE t1 ADD COLUMN c4 INT AFTER c1;
|
||||
DROP TABLE t1;
|
||||
Reference in New Issue
Block a user