polardbxengine/mysql-test/r/information_schema_part.result

206 lines
12 KiB
Plaintext

drop table if exists t1,t2,t3,t4;
create table t1 (a int not null,b int not null,c int not null, primary key(a,b))
partition by list (b*a)
(partition x1 values in (1),
partition x2 values in (3, 11, 5, 7),
partition x3 values in (16, 8, 5+19, 70-43));
select * from information_schema.partitions where table_schema="test"
and table_name="t1";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t1 x1 NULL 1 NULL LIST NULL (`b` * `a`) NULL 1 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 x2 NULL 2 NULL LIST NULL (`b` * `a`) NULL 3,11,5,7 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 x3 NULL 3 NULL LIST NULL (`b` * `a`) NULL 16,8,24,27 0 0 16384 # 0 0 # # NULL NULL default NULL
create table t2 (a int not null,b int not null,c int not null, primary key(a,b))
partition by range (a)
partitions 3
(partition x1 values less than (5),
partition x2 values less than (10),
partition x3 values less than maxvalue);
select * from information_schema.partitions where table_schema="test"
and table_name="t2";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t2 x1 NULL 1 NULL RANGE NULL `a` NULL 5 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t2 x2 NULL 2 NULL RANGE NULL `a` NULL 10 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t2 x3 NULL 3 NULL RANGE NULL `a` NULL MAXVALUE 0 0 16384 # 0 0 # # NULL NULL default NULL
create table t3 (f1 date)
partition by hash(month(f1))
partitions 3;
select * from information_schema.partitions where table_schema="test"
and table_name="t3";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t3 p0 NULL 1 NULL HASH NULL month(`f1`) NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t3 p1 NULL 2 NULL HASH NULL month(`f1`) NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t3 p2 NULL 3 NULL HASH NULL month(`f1`) NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
create table t4 (f1 date, f2 int)
partition by key(f1,f2)
partitions 3;
select * from information_schema.partitions where table_schema="test"
and table_name="t4";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t4 p0 NULL 1 NULL KEY NULL `f1`,`f2` NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t4 p1 NULL 2 NULL KEY NULL `f1`,`f2` NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t4 p2 NULL 3 NULL KEY NULL `f1`,`f2` NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
drop table t1,t2,t3,t4;
create table t1 (a int not null,b int not null,c int not null,primary key (a,b))
partition by range (a)
subpartition by hash (a+b)
( partition x1 values less than (1)
( subpartition x11,
subpartition x12),
partition x2 values less than (5)
( subpartition x21,
subpartition x22)
);
create table t2 (a int not null,b int not null,c int not null,primary key (a,b))
partition by range (a)
subpartition by key (a)
( partition x1 values less than (1)
( subpartition x11,
subpartition x12),
partition x2 values less than (5)
( subpartition x21,
subpartition x22)
);
select * from information_schema.partitions where table_schema="test";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t1 x1 x11 1 1 RANGE HASH `a` (`a` + `b`) 1 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 x1 x12 1 2 RANGE HASH `a` (`a` + `b`) 1 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 x2 x21 2 1 RANGE HASH `a` (`a` + `b`) 5 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 x2 x22 2 2 RANGE HASH `a` (`a` + `b`) 5 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t2 x1 x11 1 1 RANGE KEY `a` `a` 1 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t2 x1 x12 1 2 RANGE KEY `a` `a` 1 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t2 x2 x21 2 1 RANGE KEY `a` `a` 5 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t2 x2 x22 2 2 RANGE KEY `a` `a` 5 0 0 16384 # 0 0 # # NULL NULL default NULL
drop table t1,t2;
create table t1 (
a int not null,
b int not null,
c int not null,
primary key (a,b))
partition by range (a)
subpartition by hash (a+b)
( partition x1 values less than (1)
( subpartition x11 nodegroup 0,
subpartition x12 nodegroup 1),
partition x2 values less than (5)
( subpartition x21 nodegroup 0,
subpartition x22 nodegroup 1),
partition x3 values less than (10)
( subpartition x31 max_rows=50,
subpartition x32 nodegroup 1)
);
select * from information_schema.partitions where table_schema="test";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t1 x1 x11 1 1 RANGE HASH `a` (`a` + `b`) 1 0 0 16384 # 0 0 # # NULL NULL 0 NULL
def test t1 x1 x12 1 2 RANGE HASH `a` (`a` + `b`) 1 0 0 16384 # 0 0 # # NULL NULL 1 NULL
def test t1 x2 x21 2 1 RANGE HASH `a` (`a` + `b`) 5 0 0 16384 # 0 0 # # NULL NULL 0 NULL
def test t1 x2 x22 2 2 RANGE HASH `a` (`a` + `b`) 5 0 0 16384 # 0 0 # # NULL NULL 1 NULL
def test t1 x3 x31 3 1 RANGE HASH `a` (`a` + `b`) 10 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 x3 x32 3 2 RANGE HASH `a` (`a` + `b`) 10 0 0 16384 # 0 0 # # NULL NULL 1 NULL
show tables;
Tables_in_test
t1
drop table t1;
create table t1(f1 int, f2 int);
select * from information_schema.partitions where table_schema="test";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t1 NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 16384 # 0 0 # # NULL NULL NULL
drop table t1;
create table t1 (f1 date)
partition by linear hash(month(f1))
partitions 3;
select * from information_schema.partitions where table_schema="test"
and table_name="t1";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test t1 p0 NULL 1 NULL LINEAR HASH NULL month(`f1`) NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 p1 NULL 2 NULL LINEAR HASH NULL month(`f1`) NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
def test t1 p2 NULL 3 NULL LINEAR HASH NULL month(`f1`) NULL NULL 0 0 16384 # 0 0 # # NULL NULL default NULL
drop table t1;
create table t1 (a int)
PARTITION BY RANGE (a)
SUBPARTITION BY LINEAR HASH (a)
(PARTITION p0 VALUES LESS THAN (10));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
/*!50100 PARTITION BY RANGE (`a`)
SUBPARTITION BY LINEAR HASH (`a`)
(PARTITION p0 VALUES LESS THAN (10) ENGINE = InnoDB) */
select SUBPARTITION_METHOD FROM information_schema.partitions WHERE
table_schema="test" AND table_name="t1";
SUBPARTITION_METHOD
LINEAR HASH
drop table t1;
create table t1 (a int)
PARTITION BY LIST (a)
(PARTITION p0 VALUES IN
(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
/*!50100 PARTITION BY LIST (`a`)
(PARTITION p0 VALUES IN (10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53) ENGINE = InnoDB) */
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
table_schema = "test" AND table_name = "t1";
PARTITION_DESCRIPTION
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
drop table t1;
drop table if exists t1;
create table t1 (f1 int key) partition by key(f1) partitions 2;
select create_options from information_schema.tables where table_schema="test";
CREATE_OPTIONS
partitioned
drop table t1;
# Bug #29870919 INFORMATION SCHEMA STATS EXPIRY RESULTS IN BAD
# STATS FOR PARTITIONED TABLES
#
# Without the fix the cardinality values by SHOW INDEXES is invalid.
#
CREATE TABLE t1
(f1 INT NOT NULL AUTO_INCREMENT,
f2 INT NOT NULL,
PRIMARY KEY (f1,f2)) ENGINE=InnoDB
PARTITION BY RANGE (f2)
(PARTITION p0 VALUES LESS THAN (100),
PARTITION p1 VALUES LESS THAN (200),
PARTITION p2 VALUES LESS THAN (300),
PARTITION p3 VALUES LESS THAN (MAXVALUE));
INSERT INTO t1 VALUES (NULL, 1);
INSERT INTO t1 VALUES (NULL, 2);
INSERT INTO t1 SELECT NULL, 3
FROM t1 a, t1 b, t1 c, t1 d, t1 e, t1 f, t1 g;
# This SELECT caches the cardinality, as there is non cached yet.
SHOW INDEXES IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
t1 0 PRIMARY 1 f1 A 130 NULL NULL BTREE YES NULL
t1 0 PRIMARY 2 f2 A 130 NULL NULL BTREE YES NULL
# We do not account INSERTed rows into cardinality
# because the cached value is not expired yet.
INSERT INTO t1 SELECT NULL, 4 FROM t1;
SHOW INDEXES IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
t1 0 PRIMARY 1 f1 A 130 NULL NULL BTREE YES NULL
t1 0 PRIMARY 2 f2 A 130 NULL NULL BTREE YES NULL
# We force update cache by calling ANALYZE TABLE.
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
SHOW INDEXES IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
t1 0 PRIMARY 1 f1 A 260 NULL NULL BTREE YES NULL
t1 0 PRIMARY 2 f2 A 260 NULL NULL BTREE YES NULL
# We do see INSERTed rows accounted into cardinality
# because we ignore cache with expiry seconds set to 0.
SET session information_schema_stats_expiry = 0;
INSERT INTO t1 SELECT NULL, 4 FROM t1;
SHOW INDEXES IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
t1 0 PRIMARY 1 f1 A 520 NULL NULL BTREE YES NULL
t1 0 PRIMARY 2 f2 A 520 NULL NULL BTREE YES NULL
DROP TABLE t1;