1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-25069: Assertion `root->weight >= ...' failed in SEL_ARG::tree_delete #2

Note they key_or() may call tree_delete(), which will cause the weight
asserts to be checked. In order to avoid them from firing, update key1
tree's weight after we've changed key1->some_local_child->next_key_part.

Having done that, do we still need this at the function end:

  /* Re-compute the result tree's weight. */
  key1->update_weight_locally();
?
This commit is contained in:
Sergei Petrunia
2021-03-17 16:51:56 +03:00
parent 7e3806ce24
commit 9c7bd4f283
3 changed files with 25 additions and 0 deletions

View File

@ -239,3 +239,12 @@ insert into t1 values (1,1,1,1), (2,2,2,2), (3,3,3,3);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range PRIMARY PRIMARY 2 NULL 3 Using where
drop table t1;
#
# MDEV-25069: Assertion `root->weight >= ...' failed in SEL_ARG::tree_delete #2
#
SELECT *
FROM mysql.help_relation
WHERE
(help_topic_id < '2' OR help_topic_id != 8 OR help_topic_id < 1) AND
help_keyword_id = help_topic_id;
help_topic_id help_keyword_id