config root man

Current Path : /usr/opt/mysql57/mysql-test/suite/ndb/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //usr/opt/mysql57/mysql-test/suite/ndb/t/ndb_partition_key.test

# The include statement below is a temp one for tests that are yet to
#be ported to run with InnoDB,
#but needs to be kept for tests that would need MyISAM in future.
--source include/force_myisam_default.inc

-- 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);

# Trigger assert from bug#19856162 with an alter table
# not actually doing any changes to partitioniong
ALTER TABLE t1 ALGORITHM=INPLACE, REORGANIZE PARTITION;

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;

# BUG#33061: ORDER BY DESC becomes ASC in NDB partition pruning to one partition
select max(b) from t1 where a = 1;
select b from t1 where a = 1 order by b desc;

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
source show_attributes.inc;

#
# 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 ALGORITHM=COPY,
ENGINE = NDB
PARTITION BY KEY(a)
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);

drop table t1;

CREATE TABLE t1 (a int not null primary key) ENGINE = NDB;
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 primary key)
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;

# after bug#31931 was fixed
# this is OK, since the storage engine is specified
# on table level before.
#--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 ALGORITHM=COPY, 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);
ANALYZE TABLE t1;
CHECK TABLE t1;
OPTIMIZE TABLE t1;
REPAIR TABLE t1;
ALTER TABLE t1 ALGORITHM=INPLACE, OPTIMIZE PARTITION p0;
ALTER TABLE t1 ALGORITHM=INPLACE, CHECK PARTITION p0;
ALTER TABLE t1 ALGORITHM=INPLACE, REPAIR PARTITION p0;
ALTER TABLE t1 ALGORITHM=INPLACE, ANALYZE PARTITION p0;
--error ER_ILLEGAL_HA
ALTER TABLE t1 ALGORITHM=INPLACE, 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)
  (PARTITION p0 NODEGROUP 0, PARTITION p1 NODEGROUP 0);

ALTER TABLE t1 ADD COLUMN c4 INT AFTER c1;
SELECT NODEGROUP,PARTITION_NAME FROM information_schema.partitions WHERE
table_name = "t1";
DROP TABLE t1;

# bug#25587

CREATE TABLE t1 (
a tinyint unsigned NOT NULL,
b bigint(20) unsigned NOT NULL,
c char(12),
PRIMARY KEY (a,b)
) ENGINE ndb DEFAULT CHARSET=latin1 PARTITION BY KEY (a);

insert into t1 values(1,1,'1'), (2,2,'2'), (3,3,'3'), (4,4,'4'), (5,5,'5');
select * from t1 where a = 1;
select * from t1 where a = 2;
select * from t1 where a = 3;
select * from t1 where a = 4;
select * from t1 where a = 5;
delete from t1 where a = 1;
select * from t1 order by 1;
delete from t1 where a = 2;
select * from t1 order by 1;
delete from t1 where a = 3;
select * from t1 order by 1;
delete from t1 where a = 4;
select * from t1 order by 1;
delete from t1 where a = 5;
select * from t1 order by 1;

drop table t1;

# Create table with distribution key != partition key to
# test some partition pruning stuff
#
create table nott1 (a int, 
                    b int, 
                    c int, 
                    primary key(a,b)) 
        engine=ndb partition by key(a);

insert into nott1 values (0,0,0);
insert into nott1 values (0,1,1);
insert into nott1 values (0,2,2);
insert into nott1 values (0,3,3);
insert into nott1 values (1,0,4);
insert into nott1 values (1,1,5);
insert into nott1 values (1,2,6);
insert into nott1 values (2,22,7);

--echo All partitions scan
--source suite/ndb/include/ndb_init_scan_counts.inc
select * from nott1 order by c;
--source suite/ndb/include/ndb_scan_counts.inc

--echo Single partition scan
--source suite/ndb/include/ndb_init_scan_counts.inc
select * from nott1 where a=0 order by c;
--source suite/ndb/include/ndb_scan_counts.inc

--echo Single partition scan
--source suite/ndb/include/ndb_init_scan_counts.inc
select * from nott1 where a=4 order by c;
--source suite/ndb/include/ndb_scan_counts.inc

--echo MRR scan on one partition
--source suite/ndb/include/ndb_init_scan_counts.inc
select * from nott1 where a=0 and (( b > 0 and b < 3) or 
                                   ( b > 5 and b < 10) or 
                                   ( b > 22 and b < 50)) order by c;
--source suite/ndb/include/ndb_scan_counts.inc

drop table nott1;

#
#
#
CREATE TABLE t1 (
a char(10) NOT NULL,
b char(1) NOT NULL,
PRIMARY KEY (a,b)
) ENGINE ndb DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci
  PARTITION BY KEY (a);

insert into t1 values ('a', 'a'), ('b', 'b');
select * from t1 where a = 'a';
drop table t1;

CREATE TABLE t1 (
a varchar(3000) NOT NULL,
b char(1) NOT NULL,
PRIMARY KEY (a,b)
) ENGINE ndb DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci
  PARTITION BY KEY (a);

insert into t1 values ('a', 'a'), ('b', 'b');
select * from t1 where a = 'a';
drop table t1;

Man Man