summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2019-04-18 18:56:14 +0300
committerSergei Petrunia <psergey@askmonty.org>2019-04-18 18:56:14 +0300
commit878ca5ca4f8c5598f2e289a753327c87b5a8818c (patch)
tree97bcb55a98681dd89677d8445871b32a665b6c3e
parent7b216ceb90fd7a59a25f0d5502f29be9f48edf1d (diff)
downloadmariadb-git-bb-10.4-mdev19266.tar.gz
MDEV-19266: Crash in EITS code when enabling 128 indexesbb-10.4-mdev19266
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).
-rw-r--r--sql/opt_range.cc6
1 files changed, 5 insertions, 1 deletions
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);