diff options
author | Sergei Golubchik <serg@mariadb.org> | 2021-10-28 09:43:49 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2021-12-07 21:31:27 +0100 |
commit | 62ea1b4407762164982221dc9796502a91c139cc (patch) | |
tree | 81b3047e375b5ca98ad07102aa8573f976cd4413 | |
parent | e27b1c31378a6d2592b8ffafb0c7fcc5a1c93072 (diff) | |
download | mariadb-git-62ea1b4407762164982221dc9796502a91c139cc.tar.gz |
BUG#31761802 STATISTICS ANY QUERIES USING VIEWS ARE SUMMARIZED TOGETHER WITH THE VIEW DEFINITION SELECT
test case only
-rw-r--r-- | mysql-test/suite/perfschema/r/digest_view.result | 144 | ||||
-rw-r--r-- | mysql-test/suite/perfschema/t/digest_view.test | 76 |
2 files changed, 220 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/r/digest_view.result b/mysql-test/suite/perfschema/r/digest_view.result new file mode 100644 index 00000000000..43a8bdb1577 --- /dev/null +++ b/mysql-test/suite/perfschema/r/digest_view.result @@ -0,0 +1,144 @@ +CREATE TABLE test.v1 (a int, b int); +INSERT INTO test.v1 VALUES (1, 100), (2, 200), (3, 300); +CREATE TABLE test.t1 (a int, b int); +INSERT INTO test.t1 VALUES (1, 100), (2, 200), (3, 300); +TRUNCATE TABLE performance_schema.events_statements_summary_by_digest; +EXPLAIN EXTENDED SELECT * from test.v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE v1 ALL NULL NULL NULL NULL 3 100.00 +Warnings: +Note 1003 select `test`.`v1`.`a` AS `a`,`test`.`v1`.`b` AS `b` from `test`.`v1` +EXPLAIN EXTENDED SELECT * from test.v1 where a = 1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE v1 ALL NULL NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 select `test`.`v1`.`a` AS `a`,`test`.`v1`.`b` AS `b` from `test`.`v1` where `test`.`v1`.`a` = 1 +EXPLAIN EXTENDED SELECT * from test.v1 where b > 100; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE v1 ALL NULL NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 select `test`.`v1`.`a` AS `a`,`test`.`v1`.`b` AS `b` from `test`.`v1` where `test`.`v1`.`b` > 100 +EXPLAIN EXTENDED SELECT a, b from test.v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE v1 ALL NULL NULL NULL NULL 3 100.00 +Warnings: +Note 1003 select `test`.`v1`.`a` AS `a`,`test`.`v1`.`b` AS `b` from `test`.`v1` +EXPLAIN EXTENDED SELECT b, a from test.v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE v1 ALL NULL NULL NULL NULL 3 100.00 +Warnings: +Note 1003 select `test`.`v1`.`b` AS `b`,`test`.`v1`.`a` AS `a` from `test`.`v1` +SELECT * from test.v1; +a b +1 100 +2 200 +3 300 +SELECT * from test.v1 where a = 1; +a b +1 100 +SELECT * from test.v1 where b > 100; +a b +2 200 +3 300 +SELECT a, b from test.v1; +a b +1 100 +2 200 +3 300 +SELECT b, a from test.v1; +b a +100 1 +200 2 +300 3 +# +# DIGESTS SEEN ON TABLE +# +SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR +FROM performance_schema.events_statements_summary_by_digest +ORDER BY DIGEST_TEXT; +SCHEMA_NAME DIGEST_TEXT COUNT_STAR +test EXPLAIN EXTENDED SELECT * FROM `test` . `v1` 1 +test EXPLAIN EXTENDED SELECT * FROM `test` . `v1` WHERE `a` = ? 1 +test EXPLAIN EXTENDED SELECT * FROM `test` . `v1` WHERE `b` > ? 1 +test EXPLAIN EXTENDED SELECT `a` , `b` FROM `test` . `v1` 1 +test EXPLAIN EXTENDED SELECT `b` , `a` FROM `test` . `v1` 1 +test SELECT * FROM `test` . `v1` 1 +test SELECT * FROM `test` . `v1` WHERE `a` = ? 1 +test SELECT * FROM `test` . `v1` WHERE `b` > ? 1 +test SELECT `a` , `b` FROM `test` . `v1` 1 +test SELECT `b` , `a` FROM `test` . `v1` 1 +test SHOW WARNINGS 5 +test TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 +DROP TABLE test.v1; +CREATE VIEW test.v1 AS SELECT * FROM test.t1; +EXPLAIN EXTENDED SELECT * from test.v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` +EXPLAIN EXTENDED SELECT * from test.v1 where a = 1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`a` = 1 +EXPLAIN EXTENDED SELECT * from test.v1 where b > 100; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`b` > 100 +EXPLAIN EXTENDED SELECT a, b from test.v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` +EXPLAIN EXTENDED SELECT b, a from test.v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +Warnings: +Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t1`.`a` AS `a` from `test`.`t1` +SELECT * from test.v1; +a b +1 100 +2 200 +3 300 +SELECT * from test.v1 where a = 1; +a b +1 100 +SELECT * from test.v1 where b > 100; +a b +2 200 +3 300 +SELECT a, b from test.v1; +a b +1 100 +2 200 +3 300 +SELECT b, a from test.v1; +b a +100 1 +200 2 +300 3 +# +# DIGESTS SEEN ON VIEW +# +SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR +FROM performance_schema.events_statements_summary_by_digest +ORDER BY DIGEST_TEXT; +SCHEMA_NAME DIGEST_TEXT COUNT_STAR +test CREATE VIEW `test` . `v1` AS SELECT * FROM `test` . `t1` 1 +test DROP TABLE `test` . `v1` 1 +test EXPLAIN EXTENDED SELECT * FROM `test` . `v1` 2 +test EXPLAIN EXTENDED SELECT * FROM `test` . `v1` WHERE `a` = ? 2 +test EXPLAIN EXTENDED SELECT * FROM `test` . `v1` WHERE `b` > ? 2 +test EXPLAIN EXTENDED SELECT `a` , `b` FROM `test` . `v1` 2 +test EXPLAIN EXTENDED SELECT `b` , `a` FROM `test` . `v1` 2 +test SELECT * FROM `test` . `v1` 2 +test SELECT * FROM `test` . `v1` WHERE `a` = ? 2 +test SELECT * FROM `test` . `v1` WHERE `b` > ? 2 +test SELECT SCHEMA_NAME , `DIGEST_TEXT` , `COUNT_STAR` FROM `performance_schema` . `events_statements_summary_by_digest` ORDER BY `DIGEST_TEXT` 1 +test SELECT `a` , `b` FROM `test` . `v1` 2 +test SELECT `b` , `a` FROM `test` . `v1` 2 +test SHOW WARNINGS 10 +test TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 +DROP VIEW test.v1; +DROP TABLE test.t1; diff --git a/mysql-test/suite/perfschema/t/digest_view.test b/mysql-test/suite/perfschema/t/digest_view.test new file mode 100644 index 00000000000..462d60556eb --- /dev/null +++ b/mysql-test/suite/perfschema/t/digest_view.test @@ -0,0 +1,76 @@ +# ---------------------------------------------------- +# Tests for the performance schema statement Digests. +# ---------------------------------------------------- + +# Test case to show behavior of statements digest when +# using a view + +# Test requires: sp-protocol/ps-protocol/view-protocol/cursor-protocol disabled +--source include/no_protocol.inc +--source include/not_embedded.inc + +CREATE TABLE test.v1 (a int, b int); +INSERT INTO test.v1 VALUES (1, 100), (2, 200), (3, 300); + +CREATE TABLE test.t1 (a int, b int); +INSERT INTO test.t1 VALUES (1, 100), (2, 200), (3, 300); + + +TRUNCATE TABLE performance_schema.events_statements_summary_by_digest; + +# +# test.v1 is a table. +# Every query here is different, and should have a different digest. +# + +EXPLAIN EXTENDED SELECT * from test.v1; +EXPLAIN EXTENDED SELECT * from test.v1 where a = 1; +EXPLAIN EXTENDED SELECT * from test.v1 where b > 100; +EXPLAIN EXTENDED SELECT a, b from test.v1; +EXPLAIN EXTENDED SELECT b, a from test.v1; + +SELECT * from test.v1; +SELECT * from test.v1 where a = 1; +SELECT * from test.v1 where b > 100; +SELECT a, b from test.v1; +SELECT b, a from test.v1; + +--echo # +--echo # DIGESTS SEEN ON TABLE +--echo # + +SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR + FROM performance_schema.events_statements_summary_by_digest + ORDER BY DIGEST_TEXT; + +DROP TABLE test.v1; +CREATE VIEW test.v1 AS SELECT * FROM test.t1; + +# +# test.v1 is now a view. +# the query digests should be unchanged. +# + +EXPLAIN EXTENDED SELECT * from test.v1; +EXPLAIN EXTENDED SELECT * from test.v1 where a = 1; +EXPLAIN EXTENDED SELECT * from test.v1 where b > 100; +EXPLAIN EXTENDED SELECT a, b from test.v1; +EXPLAIN EXTENDED SELECT b, a from test.v1; + +SELECT * from test.v1; +SELECT * from test.v1 where a = 1; +SELECT * from test.v1 where b > 100; +SELECT a, b from test.v1; +SELECT b, a from test.v1; + +--echo # +--echo # DIGESTS SEEN ON VIEW +--echo # + +SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR + FROM performance_schema.events_statements_summary_by_digest + ORDER BY DIGEST_TEXT; + +DROP VIEW test.v1; +DROP TABLE test.t1; + |