[Commits] 8adcb55df8e: MDEV-19266: Crash in EITS code when enabling 128 indexes

Sergei Petrunia psergey at askmonty.org
Wed Apr 17 13:56:54 EEST 2019


revision-id: 8adcb55df8e892f866ec930f3e6df30bd5a1d9ad (mariadb-10.4.4-22-g8adcb55df8e)
parent(s): 682b360c343c5a6f61282d07a4a904b5bb281b12
author: Sergei Petrunia
committer: Sergei Petrunia
timestamp: 2019-04-17 13:56:54 +0300
message:

MDEV-19266: Crash in EITS code when enabling 128 indexes

Do not attempt to set param->table->with_impossible_ranges if the
range optimizer is using pseudo-indexes (which is true when we are
computing EITS selectivity estimates or doing partition pruning).

---
 sql/opt_range.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 5ab3d70214d..ed9cd541f70 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -9044,7 +9044,11 @@ int and_range_trees(RANGE_OPT_PARAM *param, SEL_TREE *tree1, SEL_TREE *tree2,
       if (key && key->type == SEL_ARG::IMPOSSIBLE)
       {
 	result->type= SEL_TREE::IMPOSSIBLE;
-        param->table->with_impossible_ranges.set_bit(param->real_keynr[key_no]);
+        if (param->using_real_indexes)
+        {
+          param->table->with_impossible_ranges.set_bit(param->
+                                                       real_keynr[key_no]);
+        }
         DBUG_RETURN(1);
       }
       result_keys.set_bit(key_no);


More information about the commits mailing list