summaryrefslogtreecommitdiff
path: root/mysql-test/r
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2010-03-19 10:01:02 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2010-03-19 10:01:02 +0400
commitbed0948145a6874807bc696b7742cdec47679326 (patch)
treed4a6eeb8c33141b7d7636e1ba763013240c4ed03 /mysql-test/r
parent0d608d5b11e621e604e67bfe460a36452ccbbf35 (diff)
downloadmariadb-git-bed0948145a6874807bc696b7742cdec47679326.tar.gz
Bug#51494 crash with join, explain and 'sounds like' operator
The crash happens because of discrepancy between values of conts_tables and join->const_table_map(make_join_statisctics). Calculation of conts_tables used condition with HA_STATS_RECORDS_IS_EXACT flag check. Calculation of join->const_table_map does not use this flag check. In case of MERGE table without union with index the table does not become const table and thus join_read_const_table() is not called for the table. join->const_table_map supposes this table is const and later in make_join_select this table is used for making&calculation const condition. As table record buffer is not populated it leads to crash. The fix is adding a check if an engine supports HA_STATS_RECORDS_IS_EXACT flag before updating join->const_table_map.
Diffstat (limited to 'mysql-test/r')
-rw-r--r--mysql-test/r/merge.result12
1 files changed, 12 insertions, 0 deletions
diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result
index 184cd92e053..dbffbba1b8b 100644
--- a/mysql-test/r/merge.result
+++ b/mysql-test/r/merge.result
@@ -2286,4 +2286,16 @@ m1 CREATE TABLE `m1` (
DROP TABLE m1;
DROP TABLE `test@1`.`t@1`;
DROP DATABASE `test@1`;
+#
+# Bug#51494c rash with join, explain and 'sounds like' operator
+#
+CREATE TABLE t1 (a INT) ENGINE=MYISAM;
+INSERT INTO t1 VALUES(1);
+CREATE TABLE t2 (b INT NOT NULL,c INT,d INT,e BLOB NOT NULL,
+KEY idx0 (d, c)) ENGINE=MERGE;
+EXPLAIN SELECT * FROM t1 NATURAL RIGHT JOIN
+t2 WHERE b SOUNDS LIKE e AND d = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
+DROP TABLE t2, t1;
End of 5.1 tests