mirror of
https://github.com/MariaDB/server.git
synced 2025-02-04 21:02:17 +01:00
a7f84f09bf
The functions fts_ast_visit() and fts_query() inside InnoDB FULLTEXT INDEX query processing are not checking for THD::killed (trx_is_interrupted()), like anything that potentially takes a long time should do. This is a port of the following change from MySQL 5.7.23, with a completely rewritten test case. commit c58c6f8f66ddd0357ecd0c99646aa6bf1dae49c8 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Fri May 4 15:53:13 2018 +0530 Bug #27155294 MAX_EXECUTION_TIME NOT INTERUPTED WITH FULLTEXT SEARCH USING MECAB
30 lines
681 B
Text
30 lines
681 B
Text
--source include/have_innodb.inc
|
|
|
|
CREATE TABLE t1 (a VARCHAR(7), b text, FULLTEXT KEY idx (a,b)) ENGINE=InnoDB;
|
|
|
|
--disable_query_log
|
|
BEGIN;
|
|
let $n=1000;
|
|
while ($n) {
|
|
INSERT INTO t1 VALUES('foo bar','boo far');
|
|
dec $n;
|
|
}
|
|
--enable_query_log
|
|
COMMIT;
|
|
|
|
let $id = `SELECT CONNECTION_ID()`;
|
|
send SELECT COUNT(*) FROM t1
|
|
WHERE MATCH (a,b) AGAINST ('foo bar' IN BOOLEAN MODE);
|
|
|
|
connect (con1,localhost,root,,);
|
|
let $ignore= `SELECT @id := $ID`;
|
|
KILL QUERY @id;
|
|
disconnect con1;
|
|
|
|
connection default;
|
|
# The following would return a result set if the KILL was not fast enough.
|
|
--disable_result_log
|
|
--error 0,ER_QUERY_INTERRUPTED,HA_ERR_ABORTED_BY_USER
|
|
reap;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|