Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
36 changed files
with
1,060 additions
and
823 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
CREATE TABLE t ( | ||
a INT, | ||
b INT, | ||
c INT GENERATED ALWAYS AS(a+b), | ||
d INT GENERATED ALWAYS AS(a+b+b), | ||
KEY idxa (a), | ||
KEY vidxcd (c, d) | ||
) ENGINE=INNODB STATS_PERSISTENT=1 STATS_AUTO_RECALC=1; | ||
INSERT INTO t (a,b) VALUES (1, 2); | ||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
index_name stat_name stat_description | ||
GEN_CLUST_INDEX n_diff_pfx01 DB_ROW_ID | ||
GEN_CLUST_INDEX n_leaf_pages Number of leaf pages in the index | ||
GEN_CLUST_INDEX size Number of pages in the index | ||
idxa n_diff_pfx01 a | ||
idxa n_diff_pfx02 a,DB_ROW_ID | ||
idxa n_leaf_pages Number of leaf pages in the index | ||
idxa size Number of pages in the index | ||
vidxcd n_diff_pfx01 c | ||
vidxcd n_diff_pfx02 c,d | ||
vidxcd n_diff_pfx03 c,d,DB_ROW_ID | ||
vidxcd n_leaf_pages Number of leaf pages in the index | ||
vidxcd size Number of pages in the index | ||
ALTER TABLE t ADD COLUMN e INT GENERATED ALWAYS AS(a+a+b), ADD INDEX idxb (b), ALGORITHM=INPLACE; | ||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
index_name stat_name stat_description | ||
GEN_CLUST_INDEX n_diff_pfx01 DB_ROW_ID | ||
GEN_CLUST_INDEX n_leaf_pages Number of leaf pages in the index | ||
GEN_CLUST_INDEX size Number of pages in the index | ||
idxa n_diff_pfx01 a | ||
idxa n_diff_pfx02 a,DB_ROW_ID | ||
idxa n_leaf_pages Number of leaf pages in the index | ||
idxa size Number of pages in the index | ||
idxb n_diff_pfx01 b | ||
idxb n_diff_pfx02 b,DB_ROW_ID | ||
idxb n_leaf_pages Number of leaf pages in the index | ||
idxb size Number of pages in the index | ||
vidxcd n_diff_pfx01 c | ||
vidxcd n_diff_pfx02 c,d | ||
vidxcd n_diff_pfx03 c,d,DB_ROW_ID | ||
vidxcd n_leaf_pages Number of leaf pages in the index | ||
vidxcd size Number of pages in the index | ||
ALTER TABLE t DROP COLUMN c, DROP INDEX idxa, ALGORITHM=INPLACE; | ||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
index_name stat_name stat_description | ||
GEN_CLUST_INDEX n_diff_pfx01 DB_ROW_ID | ||
GEN_CLUST_INDEX n_leaf_pages Number of leaf pages in the index | ||
GEN_CLUST_INDEX size Number of pages in the index | ||
idxb n_diff_pfx01 b | ||
idxb n_diff_pfx02 b,DB_ROW_ID | ||
idxb n_leaf_pages Number of leaf pages in the index | ||
idxb size Number of pages in the index | ||
vidxcd n_diff_pfx01 d | ||
vidxcd n_diff_pfx02 d,DB_ROW_ID | ||
vidxcd n_leaf_pages Number of leaf pages in the index | ||
vidxcd size Number of pages in the index | ||
ALTER TABLE t ADD INDEX vidxe (e), ALGORITHM=INPLACE; | ||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
index_name stat_name stat_description | ||
GEN_CLUST_INDEX n_diff_pfx01 DB_ROW_ID | ||
GEN_CLUST_INDEX n_leaf_pages Number of leaf pages in the index | ||
GEN_CLUST_INDEX size Number of pages in the index | ||
idxb n_diff_pfx01 b | ||
idxb n_diff_pfx02 b,DB_ROW_ID | ||
idxb n_leaf_pages Number of leaf pages in the index | ||
idxb size Number of pages in the index | ||
vidxcd n_diff_pfx01 d | ||
vidxcd n_diff_pfx02 d,DB_ROW_ID | ||
vidxcd n_leaf_pages Number of leaf pages in the index | ||
vidxcd size Number of pages in the index | ||
vidxe n_diff_pfx01 e | ||
vidxe n_diff_pfx02 e,DB_ROW_ID | ||
vidxe n_leaf_pages Number of leaf pages in the index | ||
vidxe size Number of pages in the index | ||
ALTER TABLE t ADD COLUMN f INT GENERATED ALWAYS AS(a + a), ADD INDEX vidxf (f), ALGORITHM=INPLACE; | ||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
index_name stat_name stat_description | ||
GEN_CLUST_INDEX n_diff_pfx01 DB_ROW_ID | ||
GEN_CLUST_INDEX n_leaf_pages Number of leaf pages in the index | ||
GEN_CLUST_INDEX size Number of pages in the index | ||
idxb n_diff_pfx01 b | ||
idxb n_diff_pfx02 b,DB_ROW_ID | ||
idxb n_leaf_pages Number of leaf pages in the index | ||
idxb size Number of pages in the index | ||
vidxcd n_diff_pfx01 d | ||
vidxcd n_diff_pfx02 d,DB_ROW_ID | ||
vidxcd n_leaf_pages Number of leaf pages in the index | ||
vidxcd size Number of pages in the index | ||
vidxe n_diff_pfx01 e | ||
vidxe n_diff_pfx02 e,DB_ROW_ID | ||
vidxe n_leaf_pages Number of leaf pages in the index | ||
vidxe size Number of pages in the index | ||
vidxf n_diff_pfx01 f | ||
vidxf n_diff_pfx02 f,DB_ROW_ID | ||
vidxf n_leaf_pages Number of leaf pages in the index | ||
vidxf size Number of pages in the index | ||
ALTER TABLE t DROP INDEX vidxcd; | ||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
index_name stat_name stat_description | ||
GEN_CLUST_INDEX n_diff_pfx01 DB_ROW_ID | ||
GEN_CLUST_INDEX n_leaf_pages Number of leaf pages in the index | ||
GEN_CLUST_INDEX size Number of pages in the index | ||
idxb n_diff_pfx01 b | ||
idxb n_diff_pfx02 b,DB_ROW_ID | ||
idxb n_leaf_pages Number of leaf pages in the index | ||
idxb size Number of pages in the index | ||
vidxe n_diff_pfx01 e | ||
vidxe n_diff_pfx02 e,DB_ROW_ID | ||
vidxe n_leaf_pages Number of leaf pages in the index | ||
vidxe size Number of pages in the index | ||
vidxf n_diff_pfx01 f | ||
vidxf n_diff_pfx02 f,DB_ROW_ID | ||
vidxf n_leaf_pages Number of leaf pages in the index | ||
vidxf size Number of pages in the index | ||
DROP TABLE t; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--source include/have_innodb.inc | ||
|
||
# | ||
# BUG#22469660 INNODB DOESN'T UPDATE INDEX STATS WHEN ADDING OR DROPPING VIRTUAL COLUMN | ||
# | ||
|
||
CREATE TABLE t ( | ||
a INT, | ||
b INT, | ||
c INT GENERATED ALWAYS AS(a+b), | ||
d INT GENERATED ALWAYS AS(a+b+b), | ||
KEY idxa (a), | ||
KEY vidxcd (c, d) | ||
) ENGINE=INNODB STATS_PERSISTENT=1 STATS_AUTO_RECALC=1; | ||
|
||
INSERT INTO t (a,b) VALUES (1, 2); | ||
|
||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
|
||
ALTER TABLE t ADD COLUMN e INT GENERATED ALWAYS AS(a+a+b), ADD INDEX idxb (b), ALGORITHM=INPLACE; | ||
|
||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
|
||
ALTER TABLE t DROP COLUMN c, DROP INDEX idxa, ALGORITHM=INPLACE; | ||
|
||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
|
||
ALTER TABLE t ADD INDEX vidxe (e), ALGORITHM=INPLACE; | ||
|
||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
|
||
ALTER TABLE t ADD COLUMN f INT GENERATED ALWAYS AS(a + a), ADD INDEX vidxf (f), ALGORITHM=INPLACE; | ||
|
||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
|
||
ALTER TABLE t DROP INDEX vidxcd; | ||
|
||
SELECT index_name, stat_name, stat_description | ||
FROM mysql.innodb_index_stats | ||
WHERE database_name = 'test' AND table_name = 't'; | ||
|
||
DROP TABLE t; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
call mtr.add_suppression("InnoDB: Cannot save (table|index) statistics for table `test`\\.`t1`.*: Persistent statistics do not exist"); | ||
CREATE TABLE t1 (a INT, KEY(a)) ENGINE=INNODB STATS_PERSISTENT=1; | ||
SET @save_debug= @@SESSION.debug_dbug; | ||
SET debug_dbug= '+d,stats_index_error'; | ||
ANALYZE TABLE t1; | ||
Table Op Msg_type Msg_text | ||
test.t1 analyze status Operation failed | ||
SET debug_dbug= @save_debug; | ||
ANALYZE TABLE t1; | ||
Table Op Msg_type Msg_text | ||
test.t1 analyze status OK | ||
DROP TABLE t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--source include/have_innodb.inc | ||
--source include/have_debug.inc | ||
|
||
call mtr.add_suppression("InnoDB: Cannot save (table|index) statistics for table `test`\\.`t1`.*: Persistent statistics do not exist"); | ||
|
||
CREATE TABLE t1 (a INT, KEY(a)) ENGINE=INNODB STATS_PERSISTENT=1; | ||
SET @save_debug= @@SESSION.debug_dbug; | ||
SET debug_dbug= '+d,stats_index_error'; | ||
ANALYZE TABLE t1; | ||
SET debug_dbug= @save_debug; | ||
ANALYZE TABLE t1; | ||
|
||
DROP TABLE t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.