Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions mysql-test/main/except.result
Original file line number Diff line number Diff line change
Expand Up @@ -710,3 +710,59 @@ SELECT * FROM t WHERE i != ANY ( SELECT 3 EXCEPT SELECT 3 );
i
drop table t;
# End of 10.3 tests
#
# MDEV-38988: Assertion failure in Protocol::end_statement or
# lack of warning upon query with INTERSECT and LIMIT ROWS EXAMINED
#
CREATE TABLE t (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
INSERT INTO t SELECT seq, seq FROM seq_1_to_30;
(SELECT a FROM t LIMIT ROWS EXAMINED 100) EXCEPT ALL (SELECT a FROM t);
a
21
22
23
24
25
26
27
28
29
30
Warnings:
Warning 1931 Query execution was interrupted. The query exceeded LIMIT ROWS EXAMINED 100. The query result may be incomplete
DROP TABLE t;
CREATE TABLE t (a INT PRIMARY KEY, b INT) ENGINE=MyISAM;
INSERT INTO t SELECT seq, seq FROM seq_1_to_30;
(SELECT a FROM t LIMIT ROWS EXAMINED 100) EXCEPT ALL (SELECT a FROM t);
a
21
22
23
24
25
26
27
28
29
30
Warnings:
Warning 1931 Query execution was interrupted. The query exceeded LIMIT ROWS EXAMINED 100. The query result may be incomplete
DROP TABLE t;
CREATE TABLE t (id INT PRIMARY KEY, f VARCHAR(16)) ENGINE=InnoDB;
INSERT INTO t SELECT seq, '' FROM seq_1_to_8650;
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000)
INTERSECT
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000);
f

DROP TABLE t;
CREATE TABLE t (id INT PRIMARY KEY, f VARCHAR(16)) ENGINE=MyISAM;
INSERT INTO t SELECT seq, '' FROM seq_1_to_8650;
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000)
INTERSECT
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000);
f

Warnings:
Warning 1931 Query execution was interrupted. The query exceeded LIMIT ROWS EXAMINED 8000. The query result may be incomplete
DROP TABLE t;
36 changes: 36 additions & 0 deletions mysql-test/main/except.test
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,39 @@ drop table t;


--echo # End of 10.3 tests

--echo #
--echo # MDEV-38988: Assertion failure in Protocol::end_statement or
--echo # lack of warning upon query with INTERSECT and LIMIT ROWS EXAMINED
--echo #

--source include/have_innodb.inc
--source include/have_sequence.inc

CREATE TABLE t (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
INSERT INTO t SELECT seq, seq FROM seq_1_to_30;
(SELECT a FROM t LIMIT ROWS EXAMINED 100) EXCEPT ALL (SELECT a FROM t);

DROP TABLE t;

CREATE TABLE t (a INT PRIMARY KEY, b INT) ENGINE=MyISAM;
INSERT INTO t SELECT seq, seq FROM seq_1_to_30;
(SELECT a FROM t LIMIT ROWS EXAMINED 100) EXCEPT ALL (SELECT a FROM t);

DROP TABLE t;

CREATE TABLE t (id INT PRIMARY KEY, f VARCHAR(16)) ENGINE=InnoDB;
INSERT INTO t SELECT seq, '' FROM seq_1_to_8650;
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000)
INTERSECT
Comment thread
pranavktiwari marked this conversation as resolved.
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000);

DROP TABLE t;

CREATE TABLE t (id INT PRIMARY KEY, f VARCHAR(16)) ENGINE=MyISAM;
INSERT INTO t SELECT seq, '' FROM seq_1_to_8650;
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000)
INTERSECT
(SELECT f FROM t WHERE id BETWEEN 7000 AND 9000 LIMIT ROWS EXAMINED 8000);
Comment thread
pranavktiwari marked this conversation as resolved.

DROP TABLE t;
2 changes: 1 addition & 1 deletion sql/sql_union.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2434,7 +2434,7 @@ bool st_select_lex_unit::exec_inner()
}
}
}
if (unlikely(saved_error))
if (thd->killed != ABORT_QUERY && unlikely(saved_error))
Comment thread
pranavktiwari marked this conversation as resolved.
{
error= saved_error;
goto err;
Expand Down
Loading