Details
-
Technical task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
None
Description
#0 0x00000000005c3752 in Item_ref::real_item (this=0x0) at 10.0-exists2in/sql/item.h:2920
|
2920 Item *real_item()
|
#0 0x00000000005c3752 in Item_ref::real_item (this=0x0) at 10.0-exists2in/sql/item.h:2920
|
#1 0x00000000005c3793 in Item_ref::real_item (this=0x3908828) at 10.0-exists2in/sql/item.h:2922
|
...
|
#8846 0x00000000005c3793 in Item_ref::real_item (this=0x3908828) at 10.0-exists2in/sql/item.h:2922
|
#8847 0x00000000005c3793 in Item_ref::real_item (this=0x3908828) at 10.0-exists2in/sql/item.h:2922
|
#8848 0x00000000007fb4a1 in Item_direct_view_ref::replace_equal_field (this=0x3908828, arg=0x7fecfcc6b3c0 "\230\226\220\003") at 10.0-exists2in/sql/item.cc:8051
|
#8849 0x00000000007f8538 in Item_ref::transform (this=0x3908828, transformer=&virtual Item::replace_equal_field(unsigned char*), arg=0x7fecfcc6b3c0 "\230\226\220\003") at 10.0-exists2in/sql/item.cc:7006
|
#8850 0x000000000080bb53 in Item_in_optimizer::transform (this=0x3908628, transformer=&virtual table offset 824, argument=0x7fecfcc6b3c0 "\230\226\220\003") at 10.0-exists2in/sql/item_cmpfunc.cc:1837
|
#8851 0x0000000000814e26 in Item_cond::transform (this=0x3909258, transformer=&virtual table offset 824, arg=0x7fecfcc6b3c0 "\230\226\220\003") at 10.0-exists2in/sql/item_cmpfunc.cc:4456
|
#8852 0x0000000000832546 in Item_func::transform (this=0x3918098, transformer=&virtual table offset 824, argument=0x7fecfcc6b3c0 "\230\226\220\003") at 10.0-exists2in/sql/item_func.cc:360
|
#8853 0x0000000000663255 in substitute_for_best_equal_field (context_tab=0x1, cond=0x3918098, cond_equal=0x39030a8, table_join_idx=0x3909fd8) at 10.0-exists2in/sql/sql_select.cc:12490
|
#8854 0x0000000000662f4c in substitute_for_best_equal_field (context_tab=0x1, cond=0x3902fb8, cond_equal=0x39030a8, table_join_idx=0x3909fd8) at 10.0-exists2in/sql/sql_select.cc:12443
|
#8855 0x0000000000646a8a in JOIN::optimize_inner (this=0x3905948) at 10.0-exists2in/sql/sql_select.cc:1361
|
#8856 0x0000000000645414 in JOIN::optimize (this=0x3905948) at 10.0-exists2in/sql/sql_select.cc:994
|
#8857 0x000000000064d0f2 in mysql_select (thd=0x38cb8a0, rref_pointer_array=0x38cec68, tables=0x38facd8, wild_num=1, fields=..., conds=0x3902fb8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x3914648, unit=0x38ce2c0, select_lex=0x38ce9b8) at 10.0-exists2in/sql/sql_select.cc:3193
|
#8858 0x000000000064387e in handle_select (thd=0x38cb8a0, lex=0x38ce210, result=0x3914648, setup_tables_done_option=0) at 10.0-exists2in/sql/sql_select.cc:362
|
#8859 0x000000000061b13b in execute_sqlcom_select (thd=0x38cb8a0, all_tables=0x38facd8) at 10.0-exists2in/sql/sql_parse.cc:4937
|
#8860 0x00000000006137a8 in mysql_execute_command (thd=0x38cb8a0) at 10.0-exists2in/sql/sql_parse.cc:2421
|
#8861 0x000000000061d9f6 in mysql_parse (thd=0x38cb8a0, rawbuf=0x3759598 "SELECT * FROM t1, v WHERE NOT EXISTS ( SELECT * FROM t3 WHERE c = b ) AND a = b", length=79, parser_state=0x7fecfcc6c4e0) at 10.0-exists2in/sql/sql_parse.cc:6056
|
#8862 0x000000000061099a in dispatch_command (command=COM_QUERY, thd=0x38cb8a0, packet=0x38d5ab1 "SELECT * FROM t1, v WHERE NOT EXISTS ( SELECT * FROM t3 WHERE c = b ) AND a = b", packet_length=79) at 10.0-exists2in/sql/sql_parse.cc:1216
|
#8863 0x000000000060fb93 in do_command (thd=0x38cb8a0) at 10.0-exists2in/sql/sql_parse.cc:945
|
#8864 0x000000000071a57a in do_handle_one_connection (thd_arg=0x38cb8a0) at 10.0-exists2in/sql/sql_connect.cc:1254
|
#8865 0x0000000000719f4a in handle_one_connection (arg=0x38cb8a0) at 10.0-exists2in/sql/sql_connect.cc:1168
|
branch: 10.0-exists2in
|
revision-id: psergey@askmonty.org-20121123063639-1jqbkjuxevqe1vb6
|
date: 2012-11-23 10:36:39 +0400
|
revno: 3482
|
Reproducible with MyISAM, Aria.
Minimal optimizer_switch: in_to_exists=on,exists_to_in=on
Full optimizer_switch (default + exists_to_in=on):
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=off,exists_to_in=on
|
EXPLAIN causes the same problem.
Test case:
SET optimizer_switch = 'exists_to_in=on'; |
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM; |
INSERT INTO t1 VALUES (1),(7); |
|
CREATE TABLE t2 (b INT) ENGINE=MyISAM; |
INSERT INTO t2 VALUES (8); |
CREATE ALGORITHM=MERGE VIEW v AS SELECT * FROM t2; |
|
CREATE TABLE t3 (c INT) ENGINE=MyISAM; |
INSERT INTO t3 VALUES (4),(6); |
|
SELECT * FROM t1, v WHERE NOT EXISTS ( SELECT * FROM t3 WHERE c = b ) AND a = b; |
|
Variation of the test case (subquery instead of the view):
SET optimizer_switch = 'exists_to_in=on'; |
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM; |
INSERT INTO t1 VALUES (1),(7); |
|
CREATE TABLE t2 (b INT) ENGINE=MyISAM; |
INSERT INTO t2 VALUES (8); |
|
CREATE TABLE t3 (c INT) ENGINE=MyISAM; |
INSERT INTO t3 VALUES (4),(6); |
|
SELECT * FROM t1, ( SELECT * FROM t2 ) alias WHERE NOT EXISTS ( SELECT * FROM t3 WHERE c = b ) AND a = b; |
|
Attachments
Issue Links
- relates to
-
MDEV-22534 Trivial correlation detection/removal for IN subqueries
- In Review