diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2023-05-05 11:14:33 +0200 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2023-05-05 11:14:33 +0200 |
commit | 5f5f743d56107ae9ece335f1b6966bb0f1bf7cf1 (patch) | |
tree | 4c5674387031193df31cf8e11598819d35d3eaae | |
parent | 4ccc310d0e698dfc32834f6e5a62b4aba0ed82cc (diff) | |
parent | 1c394795980df537e0ff1083b330a6d900cf7717 (diff) | |
download | mariadb-git-5f5f743d56107ae9ece335f1b6966bb0f1bf7cf1.tar.gz |
Merge branch '10.6' into 10.8
-rw-r--r-- | mysql-test/main/derived_split_innodb.result | 16 | ||||
-rw-r--r-- | mysql-test/main/derived_split_innodb.test | 23 | ||||
-rw-r--r-- | sql/sql_select.cc | 2 |
3 files changed, 40 insertions, 1 deletions
diff --git a/mysql-test/main/derived_split_innodb.result b/mysql-test/main/derived_split_innodb.result index 2ca0de3bd91..aba4f88493c 100644 --- a/mysql-test/main/derived_split_innodb.result +++ b/mysql-test/main/derived_split_innodb.result @@ -823,5 +823,21 @@ a b a b a b grp_id count(*) 5 5 5 2 5 3 5 100 drop table t1,t2,t3; drop table t10, t11; +# +# MDEV-31194: Server crash or assertion failure with join_cache_level=4 +# (a followup to the above bug, MDEV-26301) +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (3),(4); +CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=Aria; +INSERT INTO t2 VALUES (1),(2); +set @tmp1= @@optimizer_switch, @tmp2= @@join_cache_level; +set +optimizer_switch= 'derived_with_keys=off', +join_cache_level= 4; +SELECT t1.* FROM t1 JOIN (SELECT id, COUNT(*) FROM t2 GROUP BY id) sq ON sq.id= t1.a; +a +set optimizer_switch= @tmp1, join_cache_level= @tmp2; +DROP TABLE t1, t2; # End of 10.4 tests SET GLOBAL innodb_stats_persistent=@save_innodb_stats_persistent; diff --git a/mysql-test/main/derived_split_innodb.test b/mysql-test/main/derived_split_innodb.test index 2dd7988f223..6ccbc31d886 100644 --- a/mysql-test/main/derived_split_innodb.test +++ b/mysql-test/main/derived_split_innodb.test @@ -443,6 +443,29 @@ eval $q; drop table t1,t2,t3; drop table t10, t11; + +--echo # +--echo # MDEV-31194: Server crash or assertion failure with join_cache_level=4 +--echo # (a followup to the above bug, MDEV-26301) +--echo # +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (3),(4); + +CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=Aria; +INSERT INTO t2 VALUES (1),(2); + +set @tmp1= @@optimizer_switch, @tmp2= @@join_cache_level; +set + optimizer_switch= 'derived_with_keys=off', + join_cache_level= 4; + +SELECT t1.* FROM t1 JOIN (SELECT id, COUNT(*) FROM t2 GROUP BY id) sq ON sq.id= t1.a; + +set optimizer_switch= @tmp1, join_cache_level= @tmp2; + +# Cleanup +DROP TABLE t1, t2; + --echo # End of 10.4 tests SET GLOBAL innodb_stats_persistent=@save_innodb_stats_persistent; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 683f72d4457..8bc0b0dff59 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13496,7 +13496,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, join->return_tab= 0; if (tab->no_forced_join_cache) - return 0; + goto no_join_cache; /* Don't use join cache if @@join_cache_level==0 or this table is the first |