mirror of
https://github.com/MariaDB/server.git
synced 2025-07-03 18:08:12 +02:00

Problem: Empty queries are incremented if no rows are sent to the client in the EXECUTE phase of select query. With cursor protocol, rows are not sent during EXECUTE phase; they are sent later in FETCH phase. Hence, queries executed with cursor protocol are always falsely treated as empty in EXECUTE phase. Fix: For cursor protocol, empty queries are now counted during the FETCH phase. This ensures counter correctly reflects whether any rows were actually sent to the client. Tests included in `mysql-test/main/show.test`.
95 lines
2.6 KiB
Text
95 lines
2.6 KiB
Text
--echo #
|
|
--echo # MDEV-9538 Server crashes in check_show_access on SHOW STATISTICS
|
|
--echo # MDEV-9539 Server crashes in make_columns_old_format on SHOW GEOMETRY_COLUMNS
|
|
--echo # MDEV-9540 SHOW SPATIAL_REF_SYS and SHOW SYSTEM_VARIABLES return empty results with numerous warnings
|
|
--echo #
|
|
--error ER_PARSE_ERROR
|
|
show statistics;
|
|
--error ER_PARSE_ERROR
|
|
show spatial_ref_sys
|
|
--error ER_PARSE_ERROR
|
|
show system_variables;
|
|
--error ER_PARSE_ERROR
|
|
show geometry_columns;
|
|
--error ER_PARSE_ERROR
|
|
show nonexistent;
|
|
|
|
--echo #
|
|
--echo # MDEV-21603 Crashing SHOW TABLES with derived table in WHERE condition
|
|
--echo #
|
|
create table t1 (nm varchar(32), a int);
|
|
insert t1 values ('1',1),('2',2),('3',3);
|
|
|
|
show tables
|
|
where tables_in_test in (select *
|
|
from (select nm from test.t1 group by nm) dt);
|
|
show fields from test.t1
|
|
where field in (select * from (select nm from test.t1 group by nm) dt);
|
|
insert t1 values ('nm',0);
|
|
show fields from test.t1
|
|
where field in (select * from (select nm from test.t1 group by nm) dt);
|
|
|
|
show fields from test.t1 where field in
|
|
(select * from (select column_name from information_schema.columns
|
|
where table_name='t1' group by column_name) dt);
|
|
drop table t1;
|
|
|
|
--echo #
|
|
--echo # MDEV-4621 select returns null for information_schema.statistics.collation field
|
|
--echo #
|
|
create table t1 (f varchar(64), key(f));
|
|
select index_name, column_name, collation, cardinality from information_schema.STATISTICS where table_schema='test' and table_name='t1';
|
|
select index_name, column_name, collation from information_schema.STATISTICS where table_schema='test' and table_name='t1';
|
|
drop table t1;
|
|
|
|
--echo #
|
|
--echo # End of 10.2 tests
|
|
--echo #
|
|
|
|
--echo #
|
|
--echo # MDEV-28253 Mysqldump - INVISIBLE column error
|
|
--echo #
|
|
create table t1 (a int, b datetime invisible on update now() without system versioning) with system versioning;
|
|
desc t1;
|
|
drop table t1;
|
|
|
|
--echo #
|
|
--echo # End of 10.3 tests
|
|
--echo #
|
|
|
|
--echo #
|
|
--echo # MDEV-31721: Cursor protocol increases the counter of "Empty_queries" for select
|
|
--echo #
|
|
|
|
FLUSH STATUS;
|
|
|
|
CREATE TABLE t1 (a INT);
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
--disable_ps2_protocol
|
|
SELECT COUNT(*) FROM t1;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t1 LIMIT 0;
|
|
--enable_ps2_protocol
|
|
|
|
SHOW STATUS LIKE "Empty_queries";
|
|
|
|
DROP TABLE t1;
|
|
|
|
--echo #------------------------------
|
|
|
|
CREATE TABLE t1 (a INT);
|
|
CREATE TABLE t2 (b INT);
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t2 VALUES (2);
|
|
|
|
--disable_ps2_protocol
|
|
SELECT * FROM t1 UNION SELECT * FROM t2;
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 LIMIT 0;
|
|
--enable_ps2_protocol
|
|
|
|
SHOW STATUS LIKE "Empty_queries";
|
|
|
|
DROP TABLE t1, t2;
|
|
|
|
--echo # End of 10.11 tests
|