From dba846ce2a4c57363c4f0256b0e6d2dd1a55ac40 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Tue, 10 Nov 2020 12:29:20 +0300 Subject: [PATCH] MDEV-24117: Memory management problem (in range optimizer) Adjust the testcase for MariaDB 10.3+ : prevent IN-to-subquery conversion optimization from working. --- mysql-test/main/range.result | 2 +- mysql-test/main/range.test | 2 +- mysql-test/main/range_mrr_icp.result | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/main/range.result b/mysql-test/main/range.result index 26f871e7c96..a54b76c0b3f 100644 --- a/mysql-test/main/range.result +++ b/mysql-test/main/range.result @@ -3056,7 +3056,7 @@ set @tmp_24117= @@max_session_mem_used; # - 2.8M without the bug # - 1G with the bug. set max_session_mem_used=64*1024*1024; -set @query=concat('explain select * from t2 where a in (', @query, ')'); +set @query=concat('explain select * from t2 where a=1 or a in (', @query, ')'); prepare s from @query; # This should not fail with an error: execute s; diff --git a/mysql-test/main/range.test b/mysql-test/main/range.test index f03c21ad9c1..c850498d7f2 100644 --- a/mysql-test/main/range.test +++ b/mysql-test/main/range.test @@ -2102,7 +2102,7 @@ set @tmp_24117= @@max_session_mem_used; set max_session_mem_used=64*1024*1024; -set @query=concat('explain select * from t2 where a in (', @query, ')'); +set @query=concat('explain select * from t2 where a=1 or a in (', @query, ')'); prepare s from @query; diff --git a/mysql-test/main/range_mrr_icp.result b/mysql-test/main/range_mrr_icp.result index 25cafc4b5a7..98e95e75d37 100644 --- a/mysql-test/main/range_mrr_icp.result +++ b/mysql-test/main/range_mrr_icp.result @@ -3068,7 +3068,7 @@ set @tmp_24117= @@max_session_mem_used; # - 2.8M without the bug # - 1G with the bug. set max_session_mem_used=64*1024*1024; -set @query=concat('explain select * from t2 where a in (', @query, ')'); +set @query=concat('explain select * from t2 where a=1 or a in (', @query, ')'); prepare s from @query; # This should not fail with an error: execute s;