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
21 changes: 21 additions & 0 deletions mysql-test/main/fulltext.result
Original file line number Diff line number Diff line change
Expand Up @@ -788,3 +788,24 @@ CREATE TEMPORARY TABLE tmp (a TEXT) ENGINE=Aria;
ALTER TABLE tmp ADD FULLTEXT (a);
INSERT INTO tmp VALUES ('foo');
DROP TABLE tmp;
#
# MDEV-32383 Server crashes in Item_func_match::init_search on 2nd execution of PS
#
CREATE TABLE t (a VARCHAR(255), FULLTEXT(a));
INSERT INTO t VALUES ('foo'),('bar');
CREATE VIEW v AS
SELECT MATCH (a) AGAINST ('MariaDB' IN NATURAL LANGUAGE MODE) AS f
FROM t
WHERE MATCH (a) AGAINST ('MariaDB' IN NATURAL LANGUAGE MODE) > 0
ORDER BY f;
PREPARE stmt FROM "SELECT f FROM v ORDER BY f";
EXECUTE stmt;
f
EXECUTE stmt;
f
DEALLOCATE PREPARE stmt;
DROP VIEW v;
DROP TABLE t;
#
# End of 10.11 tests
#
25 changes: 25 additions & 0 deletions mysql-test/main/fulltext.test
Original file line number Diff line number Diff line change
Expand Up @@ -736,3 +736,28 @@ CREATE TEMPORARY TABLE tmp (a TEXT) ENGINE=Aria;
ALTER TABLE tmp ADD FULLTEXT (a);
INSERT INTO tmp VALUES ('foo');
DROP TABLE tmp;

--echo #
--echo # MDEV-32383 Server crashes in Item_func_match::init_search on 2nd execution of PS
--echo #

CREATE TABLE t (a VARCHAR(255), FULLTEXT(a));
INSERT INTO t VALUES ('foo'),('bar');

CREATE VIEW v AS
SELECT MATCH (a) AGAINST ('MariaDB' IN NATURAL LANGUAGE MODE) AS f
FROM t
WHERE MATCH (a) AGAINST ('MariaDB' IN NATURAL LANGUAGE MODE) > 0
ORDER BY f;

PREPARE stmt FROM "SELECT f FROM v ORDER BY f";
EXECUTE stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

DROP VIEW v;
DROP TABLE t;

--echo #
--echo # End of 10.11 tests
--echo #
1 change: 1 addition & 0 deletions sql/item_func.h
Original file line number Diff line number Diff line change
Expand Up @@ -3851,6 +3851,7 @@ class Item_func_match :public Item_real_func
ft_handler= 0;
concat_ws= 0;
table= 0; // required by Item_func_match::eq()
master= 0;
DBUG_VOID_RETURN;
}
bool is_expensive_processor(void *arg) override { return TRUE; }
Expand Down