File: information_schema_part.result

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (219 lines) | stat: -rw-r--r-- 13,273 bytes parent folder | download
1
2
3
4
5
6
7
8
9
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
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 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 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.
# We expect a non-zero cardinality value, as SE cannot provide
# latest value, without the call to ANALYZE TABLE.
SELECT TABLE_NAME, NON_UNIQUE, INDEX_SCHEMA INDEX_NAME, SEQ_IN_INDEX,
COLUMN_NAME, COLLATION, IF(CARDINALITY > 0, "non-zero", "zero"),
SUB_PART PACKED, NULLABLE, INDEX_TYPE, COMMENT, INDEX_COMMENT,
IS_VISIBLE, EXPRESSION
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
TABLE_NAME	NON_UNIQUE	INDEX_NAME	SEQ_IN_INDEX	COLUMN_NAME	COLLATION	IF(CARDINALITY > 0, "non-zero", "zero")	PACKED	NULLABLE	INDEX_TYPE	COMMENT	INDEX_COMMENT	IS_VISIBLE	EXPRESSION
t1	0	test	1	f1	A	non-zero	NULL		BTREE			YES	NULL
t1	0	test	2	f2	A	non-zero	NULL		BTREE			YES	NULL
# We do not account INSERTed rows into cardinality because
# the cached value is not expired yet.
# We expect a non-zero cardinality value, as SE cannot provide
# latest value, without the call to ANALYZE TABLE.
INSERT INTO t1 SELECT NULL, 4 FROM t1;
SELECT TABLE_NAME, NON_UNIQUE, INDEX_SCHEMA INDEX_NAME, SEQ_IN_INDEX,
COLUMN_NAME, COLLATION, IF(CARDINALITY > 0, "non-zero", "zero"),
SUB_PART PACKED, NULLABLE, INDEX_TYPE, COMMENT, INDEX_COMMENT,
IS_VISIBLE, EXPRESSION
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
TABLE_NAME	NON_UNIQUE	INDEX_NAME	SEQ_IN_INDEX	COLUMN_NAME	COLLATION	IF(CARDINALITY > 0, "non-zero", "zero")	PACKED	NULLABLE	INDEX_TYPE	COMMENT	INDEX_COMMENT	IS_VISIBLE	EXPRESSION
t1	0	test	1	f1	A	non-zero	NULL		BTREE			YES	NULL
t1	0	test	2	f2	A	non-zero	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;