From 878ca5ca4f8c5598f2e289a753327c87b5a8818c Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Thu, 18 Apr 2019 18:56:14 +0300 Subject: 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); -- cgit v1.2.1