Details
Description
The test case from MDEV-29014 fails on bb-11.0, but on 10.5-10.11 failure is not reproducible after 5fc172fd43 (Merge branch '10.5' into bb-10.5-release)--most likely after fixing MDEV-28846 ( Poor performance when rowid filter contains no elements)
--source include/have_partition.inc
|
|
CREATE TABLE t1 (a INT); |
INSERT INTO t1 () VALUES (1),(NULL),(2); |
|
CREATE TABLE t2 (b INT, c INT, KEY(b), KEY(c)) PARTITION BY HASH(b); |
INSERT INTO t2 VALUES (NULL,4),(NULL,6),(7,8); |
|
SELECT * FROM t1 WHERE a NOT IN (SELECT c FROM t2 WHERE a IN (SELECT c FROM t2) AND b != 9); |
|
# Cleanup
|
DROP TABLE t1, t2; |
bb-11.0 527cc3e2c51e5bfb6899dd6bc65c |
mariadbd: /bb-11.0/sql/handler.h:4656: virtual void handler::disable_pushed_rowid_filter(): Assertion `pushed_rowid_filter != __null && save_pushed_rowid_filter == __null' failed.
|
230207 10:38:45 [ERROR] mysqld got signal 6 ;
|
|
Server version: 11.0.1-MariaDB-debug-log source revision: 527cc3e2c51e5bfb6899dd6bc65c25f92f0fe0bc
|
|
??:0(__assert_fail)[0x7fadabacffd6]
|
sql/handler.h:4658(handler::disable_pushed_rowid_filter())[0x560b0de12a60]
|
sql/item_subselect.cc:4099(subselect_single_select_engine::exec())[0x560b0e26e0ba]
|
sql/item_subselect.cc:812(Item_subselect::exec())[0x560b0e24a0b1]
|
sql/item_subselect.cc:994(Item_in_subselect::exec())[0x560b0e24b6b3]
|
sql/item_subselect.cc:1947(Item_in_subselect::val_bool())[0x560b0e25652f]
|
sql/item.h:1791(Item::val_bool_result())[0x560b0d305700]
|
sql/item_cmpfunc.cc:1637(Item_in_optimizer::val_int())[0x560b0e095116]
|
sql/item.h:1787(Item::val_int_result())[0x560b0d3055a4]
|
sql/item.cc:10166(Item_cache_int::cache_value())[0x560b0e064c2e]
|
sql/item.cc:8921(Item_cache_wrapper::cache())[0x560b0e07c6bd]
|
sql/item.cc:9107(Item_cache_wrapper::val_bool())[0x560b0e05be2f]
|
sql/item_cmpfunc.cc:203(Item_func_not::val_int())[0x560b0e0842fb]
|
sql/sql_select.cc:22858(evaluate_join_record(JOIN*, st_join_table*, int))[0x560b0d8573e1]
|
sql/sql_select.cc:22794(sub_select(JOIN*, st_join_table*, bool))[0x560b0d856ccb]
|
sql/sql_select.cc:22289(do_select(JOIN*, Procedure*))[0x560b0d8543d2]
|
sql/sql_select.cc:4864(JOIN::exec_inner())[0x560b0d7d59ec]
|
sql/sql_select.cc:4643(JOIN::exec())[0x560b0d7d2eec]
|
sql/sql_select.cc:5124(mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x560b0d7d745b]
|
sql/sql_select.cc:608(handle_select(THD*, LEX*, select_result*, unsigned long long))[0x560b0d7a73a1]
|
sql/sql_parse.cc:6265(execute_sqlcom_select(THD*, TABLE_LIST*))[0x560b0d6ca8d5]
|
sql/sql_parse.cc:3949(mysql_execute_command(THD*, bool))[0x560b0d6b91ce]
|
sql/sql_parse.cc:8000(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x560b0d6d5658]
|
sql/sql_parse.cc:1896(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x560b0d6ab904]
|
sql/sql_parse.cc:1407(do_command(THD*, bool))[0x560b0d6a8640]
|
sql/sql_connect.cc:1416(do_handle_one_connection(CONNECT*, bool))[0x560b0db72463]
|
sql/sql_connect.cc:1320(handle_one_connection)[0x560b0db71dc0]
|
perfschema/pfs.cc:2203(pfs_spawn_thread)[0x560b0e7ac70e]
|
nptl/pthread_create.c:478(start_thread)[0x7fadabfea609]
|
|
Query (0x6290000e62a8): SELECT * FROM t1 WHERE a NOT IN (SELECT c FROM t2 WHERE a IN (SELECT c FROM t2) AND b != 9)
|
|
explain extended SELECT * FROM t1 WHERE a NOT IN (SELECT c FROM t2 WHERE a IN (SELECT c FROM t2) AND b != 9);
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
2 DEPENDENT SUBQUERY t2 ref c c 5 test.t1.a 1 100.00 Using index; FirstMatch
|
2 DEPENDENT SUBQUERY t2 ref_or_null|filter b,c c|b 5|5 func 2 (67%) 66.67 Using where; Full scan on NULL key; Using rowid filter
|
Warnings:
|
Note 1276 Field or reference 'test.t1.a' of SELECT #2 was resolved in SELECT #1
|
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where !<expr_cache><`test`.`t1`.`a`>(<in_optimizer>(`test`.`t1`.`a`,<exists>(/* select#2 */ select `test`.`t2`.`c` from `test`.`t2` semi join (`test`.`t2`) where `test`.`t2`.`b` <> 9 and `test`.`t1`.`a` = `test`.`t2`.`c` and trigcond(<cache>(`test`.`t1`.`a`) = `test`.`t2`.`c` or `test`.`t2`.`c` is null) having trigcond(`test`.`t2`.`c` is null))))
|