Hello Igor, On Mon, Oct 05, 2020 at 10:13:17PM -0700, Igor Babaev wrote:
I've accepted all your changes for my original fix. This is a new patch for 10.2.
...
diff --git a/sql/opt_range.cc b/sql/opt_range.cc index e933d2a..9f1fb9a 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc
@@ -8899,11 +8902,10 @@ tree_or(RANGE_OPT_PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) { SEL_ARG *key1= tree1->keys[key_no]; SEL_ARG *key2= tree2->keys[key_no]; - if (!must_be_ored) - { + if (!must_be_ored || no_merges1) key1->incr_refs(); + if (!must_be_ored || no_merges2) key2->incr_refs(); - } if ((result->keys[key_no]= key_or(param, key1, key2))) result->keys_map.set_bit(key_no); }
What is the purpose of this change? As far as I understand, the bug is fixed without it, too? BR Sergei -- Sergei Petrunia, Software Developer MariaDB Corporation | Skype: sergefp | Blog: http://s.petrunia.net/blog