mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 09:14:17 +01:00
9a4110aa57
The problem was an assignment in test_quick_select() that flagged empty tables with "Impossible where". This test was however wrong as it didn't work correctly for left join. Removed the test, but added checking of empty tables in DELETE and UPDATE to get similar EXPLAIN as before. The new tests is a bit more strict (better) than before as it catches all cases of empty tables in single table DELETE/UPDATE.
103 lines
2.4 KiB
Text
103 lines
2.4 KiB
Text
--source include/have_debug.inc
|
|
--source include/have_debug_sync.inc
|
|
--source include/count_sessions.inc
|
|
|
|
call mtr.add_suppression("Sort aborted.*");
|
|
|
|
SET @old_debug= @@session.debug;
|
|
|
|
--echo #
|
|
--echo # Bug#36022 please log more information about "Sort aborted" queries
|
|
--echo #
|
|
|
|
CREATE TABLE t1(f0 int auto_increment primary key, f1 int);
|
|
INSERT INTO t1(f1) VALUES (0),(1),(2),(3),(4),(5);
|
|
|
|
SET session debug_dbug= '+d,alloc_sort_buffer_fail';
|
|
CALL mtr.add_suppression("Out of sort memory");
|
|
--error ER_OUT_OF_SORTMEMORY
|
|
SELECT * FROM t1 ORDER BY f1 ASC, f0;
|
|
SET session debug_dbug= @old_debug;
|
|
|
|
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
|
--error ER_SP_WRONG_NO_OF_ARGS
|
|
DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
|
|
|
|
DROP TABLE t1;
|
|
DROP FUNCTION f1;
|
|
|
|
--echo #
|
|
--echo # Bug #11747102
|
|
--echo # 30771: LOG MORE INFO ABOUT THREADS KILL'D AND SORT ABORTED MESSAGES
|
|
--echo #
|
|
|
|
connect (con1, localhost, root);
|
|
connect (con2, localhost, root);
|
|
|
|
connection con1;
|
|
CREATE TABLE t1(f0 int auto_increment primary key, f1 int);
|
|
INSERT INTO t1(f1) VALUES (0),(1),(2),(3),(4),(5);
|
|
|
|
let $ID= `SELECT @id := CONNECTION_ID()`;
|
|
|
|
SET DEBUG_SYNC='filesort_start SIGNAL filesort_started WAIT_FOR filesort_killed';
|
|
--echo # Sending: (not reaped since connection is killed later)
|
|
--send SELECT * FROM t1 ORDER BY f1 ASC, f0
|
|
|
|
connection con2;
|
|
let $ignore= `SELECT @id := $ID`;
|
|
SET DEBUG_SYNC='now WAIT_FOR filesort_started';
|
|
KILL @id;
|
|
SET DEBUG_SYNC='now SIGNAL filesort_killed';
|
|
|
|
connection default;
|
|
disconnect con1;
|
|
disconnect con2;
|
|
--source include/wait_until_count_sessions.inc
|
|
SET DEBUG_SYNC= "RESET";
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Bug#13832772 ASSERTION `THD->IS_ERROR() || KILL_ERRNO'
|
|
--echo # FAILED IN FILESORT/MYSQL_DELETE
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (
|
|
c1 BLOB,
|
|
c2 TEXT,
|
|
c3 TEXT,
|
|
c4 TEXT,
|
|
c5 TEXT,
|
|
c6 TEXT,
|
|
c7 TEXT,
|
|
c8 BLOB,
|
|
c9 TEXT,
|
|
c19 TEXT,
|
|
pk INT,
|
|
c20 TEXT,
|
|
c21 BLOB,
|
|
c22 TEXT,
|
|
c23 TEXT,
|
|
c24 TEXT,
|
|
c25 TEXT,
|
|
c26 BLOB,
|
|
c27 TEXT,
|
|
c28 TEXT,
|
|
primary key (pk)
|
|
);
|
|
|
|
insert into t1 (pk) values (1),(2),(3);
|
|
|
|
CALL mtr.add_suppression("Out of sort memory");
|
|
|
|
--error ER_OUT_OF_SORTMEMORY
|
|
DELETE IGNORE FROM t1 ORDER BY c26,c7,c23,c4,c25,c5,c20,
|
|
c19,c21,c8,c1,c27,c28,c3,c9,c22,c24,c6,c2,pk LIMIT 2;
|
|
SHOW WARNINGS;
|
|
|
|
--error ER_OUT_OF_SORTMEMORY
|
|
DELETE FROM t1 ORDER BY c26,c7,c23,c4,c25,c5,c20,
|
|
c19,c21,c8,c1,c27,c28,c3,c9,c22,c24,c6,c2,pk LIMIT 2;
|
|
SHOW WARNINGS;
|
|
|
|
DROP TABLE t1;
|