Current Path : /home/usr.opt/mysql57/mysql-test/r/ |
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 |
Current File : //home/usr.opt/mysql57/mysql-test/r/partition_hash.result |
drop table if exists t1; # # Bug#12725206/Bug#61765: WRONG QUERY RESULTS ON SUBPARTITIONS BASED # ON USIGNED BIGINT # CREATE TABLE t1 ( a int(11) NOT NULL, b bigint(20) UNSIGNED NOT NULL ) PARTITION BY RANGE (a) SUBPARTITION BY HASH (b) SUBPARTITIONS 3 (PARTITION p1 VALUES LESS THAN (1308614400), PARTITION p2 VALUES LESS THAN (1308700800), PARTITION p3 VALUES LESS THAN (1308787200), PARTITION p4 VALUES LESS THAN (1308873600), PARTITION p5 VALUES LESS THAN (1308960000) ); INSERT INTO t1 VALUES (1308614400,18446744073709551615), (1308700800,0xFFFFFFFFFFFFFFFE), (1308787200,18446744073709551613), (1308873600,18446744073709551612), (1308873600, 12531568256096620965), (1308873600, 12531568256096), (1308873600, 9223372036854775808); SELECT a,b,HEX(b) FROM t1 ORDER BY a, b; a b HEX(b) 1308614400 18446744073709551615 FFFFFFFFFFFFFFFF 1308700800 18446744073709551614 FFFFFFFFFFFFFFFE 1308787200 18446744073709551613 FFFFFFFFFFFFFFFD 1308873600 12531568256096 B65BBACA460 1308873600 9223372036854775808 8000000000000000 1308873600 12531568256096620965 ADE912EF0F3351A5 1308873600 18446744073709551612 FFFFFFFFFFFFFFFC # The following queries returned nothing SELECT * FROM t1 WHERE b = 9223372036854775808; a b 1308873600 9223372036854775808 SELECT * FROM t1 WHERE b = 18446744073709551612; a b 1308873600 18446744073709551612 SELECT * FROM t1 WHERE b = 18446744073709551615; a b 1308614400 18446744073709551615 analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = 9223372036854775808; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p1_p1sp2,p2_p2sp2,p3_p3sp2,p4_p4sp2,p5_p5sp2 ALL NULL NULL NULL NULL 3 33.33 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`b` = 9223372036854775808) EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = 18446744073709551612; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p1_p1sp1,p2_p2sp1,p3_p3sp1,p4_p4sp1,p5_p5sp1 ALL NULL NULL NULL NULL 3 33.33 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`b` = 18446744073709551612) EXPLAIN PARTITIONS SELECT * FROM t1 WHERE b = 18446744073709551615; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p1_p1sp1,p2_p2sp1,p3_p3sp1,p4_p4sp1,p5_p5sp1 ALL NULL NULL NULL NULL 3 33.33 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`b` = 18446744073709551615) DROP TABLE t1; 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; 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; a select * from t1 where a is null or (a >= 5 and a <= 7); a NULL 5 6 7 select * from t1 where a is null; a NULL select * from t1 where a is not null; a 0 1 2 3 4 5 6 7 select * from t1 where a >= 1 and a < 3; a 1 2 select * from t1 where a >= 3 and a <= 5; a 3 4 5 select * from t1 where a > 2 and a < 4; a 3 select * from t1 where a > 3 and a <= 6; a 4 5 6 select * from t1 where a > 5; a 6 7 select * from t1 where a >= 1 and a <= 5; a 1 2 3 4 5 analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK explain partitions select * from t1 where a < 0; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3 ALL NULL NULL NULL NULL 9 33.33 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` < 0) explain partitions select * from t1 where a is null or (a >= 5 and a <= 7); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p2,p3 ALL NULL NULL NULL NULL 7 23.81 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (isnull(`test`.`t1`.`a`) or ((`test`.`t1`.`a` >= 5) and (`test`.`t1`.`a` <= 7))) explain partitions select * from t1 where a is null; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 3 33.33 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where isnull(`test`.`t1`.`a`) explain partitions select * from t1 where a is not null; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3 ALL NULL NULL NULL NULL 9 88.89 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` is not null) explain partitions select * from t1 where a >= 1 and a < 3; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1 ALL NULL NULL NULL NULL 5 20.00 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` >= 1) and (`test`.`t1`.`a` < 3)) explain partitions select * from t1 where a >= 3 and a <= 5; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p1,p2 ALL NULL NULL NULL NULL 4 25.00 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` >= 3) and (`test`.`t1`.`a` <= 5)) explain partitions select * from t1 where a > 2 and a < 4; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 2 50.00 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` > 2) and (`test`.`t1`.`a` < 4)) explain partitions select * from t1 where a > 3 and a <= 6; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p2,p3 ALL NULL NULL NULL NULL 4 25.00 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` > 3) and (`test`.`t1`.`a` <= 6)) explain partitions select * from t1 where a > 5; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2,p3 ALL NULL NULL NULL NULL 9 33.33 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` > 5) explain partitions select * from t1 where a >= 1 and a <= 5; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 p0,p1,p2 ALL NULL NULL NULL NULL 7 14.29 Using where Warnings: Warning 1681 'PARTITIONS' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` >= 1) and (`test`.`t1`.`a` <= 5)) drop table t1; CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd'; CREATE TABLESPACE ts2 ADD DATAFILE 'ts2.ibd'; CREATE TABLESPACE ts3 ADD DATAFILE 'ts3.ibd'; 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); Warnings: Warning 1681 'InnoDB : A table partition in a shared tablespace' is deprecated and will be removed in a future release. insert into t1 values (1,1,1); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL, `c` int(11) NOT NULL, PRIMARY KEY (`a`,`b`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a + 2) (PARTITION x1 TABLESPACE = `ts1` ENGINE = InnoDB, PARTITION x2 TABLESPACE = `ts2` ENGINE = InnoDB, PARTITION x3 TABLESPACE = `ts3` ENGINE = InnoDB) */ 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; a b c 1 1 1 4 1 1 2 1 1 5 1 1 3 1 1 update t1 set c=3 where b=1; select * from t1; a b c 1 1 3 4 1 3 2 1 3 5 1 3 3 1 3 select b from t1 where a=3; b 1 select b,c from t1 where a=1 AND b=1; b c 1 3 delete from t1 where a=1; delete from t1 where c=3; select * from t1; a b c ALTER TABLE t1 partition by hash (a + 3) partitions 3 (partition x1 tablespace ts1, partition x2 tablespace ts2, partition x3 tablespace ts3); Warnings: Warning 1681 'InnoDB : A table partition in a shared tablespace' is deprecated and will be removed in a future release. select * from t1; a b c SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL, `c` int(11) NOT NULL, PRIMARY KEY (`a`,`b`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a + 3) (PARTITION x1 TABLESPACE = `ts1` ENGINE = InnoDB, PARTITION x2 TABLESPACE = `ts2` ENGINE = InnoDB, PARTITION x3 TABLESPACE = `ts3` ENGINE = InnoDB) */ drop table t1; DROP TABLESPACE ts1; DROP TABLESPACE ts2; DROP TABLESPACE ts3; 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; 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; CREATE TABLE t1 (f1 INTEGER, f2 char(20)) PARTITION BY HASH(f1) PARTITIONS 2; INSERT INTO t1 SET f1 = 0 - 1, f2 = '#######'; select * from t1; f1 f2 -1 ####### drop table t1; create table t1 (c1 int DEFAULT NULL, c2 varchar (30) DEFAULT NULL, c3 date DEFAULT NULL) 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; c1 c2 c3 136 abc 2002-01-05 158 abc 2002-06-01 142 abc 2002-02-14 162 abc 2002-06-28 182 abc 2002-11-09 184 abc 2002-11-22 select * from t1 where c3 between '2002-01-01' and '2002-12-31'; c1 c2 c3 136 abc 2002-01-05 158 abc 2002-06-01 142 abc 2002-02-14 162 abc 2002-06-28 182 abc 2002-11-09 184 abc 2002-11-22 drop table t1;