Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
When executing the following query:
SELECT SQL_SMALL_RESULT table1 . `col_date_key` AS field1 FROM ( CC AS table1 STRAIGHT_JOIN CC AS table2 ON (table2 . `col_varchar_key` = table1 . `col_varchar_nokey` ) ) WHERE ( ( SELECT COUNT( SUBQUERY1_t1 . `col_varchar_nokey` ) AS SUBQUERY1_field1 FROM C AS SUBQUERY1_t1 WHERE SUBQUERY1_t1 . `col_varchar_nokey` IN ( SELECT CHILD_SUBQUERY1_t2 . `col_varchar_key` AS CHILD_SUBQUERY1_field1 FROM ( C AS CHILD_SUBQUERY1_t1 STRAIGHT_JOIN ( ( B AS CHILD_SUBQUERY1_t2 STRAIGHT_JOIN C AS CHILD_SUBQUERY1_t3 ON (CHILD_SUBQUERY1_t3 . `col_int_nokey` = CHILD_SUBQUERY1_t2 . `col_int_key` ) ) ) ON (CHILD_SUBQUERY1_t3 . `col_varchar_key` = CHILD_SUBQUERY1_t2 . `col_varchar_nokey` ) ) WHERE CHILD_SUBQUERY1_t3 . `col_varchar_nokey` <> CHILD_SUBQUERY1_t2 . `col_varchar_nokey` ) ) IS NULL ) AND ( table1 . `col_varchar_key` >= 'p' OR table1 . `pk` IN (12, 21, 214) ) ORDER BY table1 . `col_time_key` , table1 .`pk` , CONCAT ( table2 . `col_varchar_nokey`, table2 . `col_varchar_key` ), field1 LIMIT 2
maria-5.3-mwl-66 asserted as follows:
mysqld: sql_select.cc:5385: bool greedy_search(JOIN*, table_map, uint, uint): Assertion `join->best_read < 1.7976931348623157e+308' failed.
- 2010-07-07T10:30:17 #6 0x000000307b62b945 in __assert_fail (
- 2010-07-07T10:30:17 assertion=0xd3ea18 "join->best_read < 1.7976931348623157e+308",
- 2010-07-07T10:30:17 file=<value optimized out>, line=5385, function=<value optimized out>)
- 2010-07-07T10:30:17 at assert.c:81
- 2010-07-07T10:30:17 #7 0x000000000071c2eb in greedy_search (join=0x7ffdc81a5f70,
- 2010-07-07T10:30:17 remaining_tables=15, search_depth=62, prune_level=1) at sql_select.cc:5385
- 2010-07-07T10:30:17 #8 0x000000000071bad6 in choose_plan (join=0x7ffdc81a5f70, join_tables=15)
- 2010-07-07T10:30:17 at sql_select.cc:5041
- 2010-07-07T10:30:17 #9 0x00000000007db8da in optimize_semijoin_nests (join=0x7ffdc81a5f70,
- 2010-07-07T10:30:17 all_table_map=15) at opt_subselect.cc:1155
- 2010-07-07T10:30:17 #10 0x00000000007165f4 in make_join_statistics (join=0x7ffdc81a5f70,
- 2010-07-07T10:30:17 tables_arg=0x7ffdc81816e0, conds=0x7ffdc8217bb8,
- 2010-07-07T10:30:17 keyuse_array=0x7ffdc81abb18) at sql_select.cc:3130
- 2010-07-07T10:30:17 #11 0x000000000070ea64 in JOIN::optimize (this=0x7ffdc81a5f70)
- 2010-07-07T10:30:17 at sql_select.cc:939
- 2010-07-07T10:30:17 #12 0x0000000000630328 in subselect_single_select_engine::exec (
- 2010-07-07T10:30:17 this=0x7ffdc8110908) at item_subselect.cc:2609
- 2010-07-07T10:30:17 #13 0x000000000062a1a5 in Item_subselect::exec (this=0x7ffdc81107d0)
- 2010-07-07T10:30:17 at item_subselect.cc:481
- 2010-07-07T10:30:17 #14 0x000000000062b2c0 in Item_singlerow_subselect::val_int (
- 2010-07-07T10:30:17 this=0x7ffdc81107d0) at item_subselect.cc:890
- 2010-07-07T10:30:17 #15 0x00000000005ba7c9 in Item::update_null_value (this=0x7ffdc81107d0)
- 2010-07-07T10:30:17 at item.h:857
- 2010-07-07T10:30:17 #16 0x000000000063638f in Item_subselect::is_null (this=0x7ffdc81107d0)
- 2010-07-07T10:30:17 at item_subselect.h:143
- 2010-07-07T10:30:17 #17 0x00000000005f606f in Item_func_isnull::val_int (this=0x7ffdc8110948)
- 2010-07-07T10:30:17 at item_cmpfunc.cc:4620
- 2010-07-07T10:30:17 #18 0x00000000005cf499 in eval_const_cond (cond=0x7ffdc8110948)
- 2010-07-07T10:30:17 at item_func.cc:63
- 2010-07-07T10:30:17 #19 0x0000000000728c73 in remove_eq_conds (thd=0x3935518, cond=0x7ffdc8110948,
- 2010-07-07T10:30:17 cond_value=0x7ffe340e6db0) at sql_select.cc:10571
- 2010-07-07T10:30:17 #20 0x000000000072876d in remove_eq_conds (thd=0x3935518, cond=0x7ffdc82169c0,
- 2010-07-07T10:30:17 cond_value=0x7ffdc81a5d50) at sql_select.cc:10458
- 2010-07-07T10:30:17 #21 0x0000000000728647 in optimize_cond (join=0x7ffdc81a0190,
- 2010-07-07T10:30:17 conds=0x7ffdc82169c0, join_list=0x3937ef8, cond_value=0x7ffdc81a5d50)
- 2010-07-07T10:30:17 at sql_select.cc:10425
- 2010-07-07T10:30:17 #22 0x000000000070e33e in JOIN::optimize (this=0x7ffdc81a0190)
- 2010-07-07T10:30:17 at sql_select.cc:802
- 2010-07-07T10:30:17 #23 0x00000000007143cf in mysql_select (thd=0x3935518,
- 2010-07-07T10:30:17 rref_pointer_array=0x3937f78, tables=0x7ffdc80b2020, wild_num=0,
- 2010-07-07T10:30:17 fields=..., conds=0x7ffdc8111250, og_num=4, order=0x7ffdc81114a0,
- 2010-07-07T10:30:17 group=0x0, having=0x0, proc_param=0x0, select_options=2147764744,
- 2010-07-07T10:30:17 result=0x7ffdc8111c08, unit=0x3937920, select_lex=0x3937d90)
- 2010-07-07T10:30:17 at sql_select.cc:2540
- 2010-07-07T10:30:17 #24 0x000000000070c966 in handle_select (thd=0x3935518, lex=0x3937880,
- 2010-07-07T10:30:17 result=0x7ffdc8111c08, setup_tables_done_option=0) at sql_select.cc:276
- 2010-07-07T10:30:17 #25 0x00000000006a048e in execute_sqlcom_select (thd=0x3935518,
- 2010-07-07T10:30:17 all_tables=0x7ffdc80b2020) at sql_parse.cc:5081
- 2010-07-07T10:30:17 #26 0x00000000006973bb in mysql_execute_command (thd=0x3935518)
- 2010-07-07T10:30:17 at sql_parse.cc:2265
- 2010-07-07T10:30:17 #27 0x00000000006a2b21 in mysql_parse (thd=0x3935518,
- 2010-07-07T10:30:17 inBuf=0x7ffdc80b1240 "SELECT SQL_SMALL_RESULT table1 . `col_date_key` AS field1 FROM ( CC AS table1 STRAIGHT_JOIN CC AS table2 ON (table2 . `col_varchar_key` = table1 . `col_varchar_nokey` ) ) WHERE ( ( SELECT COUNT( SUBQUERY1_t1 . `col_varchar_nokey` ) AS SUBQUERY1_field1 FROM C AS SUBQUERY1_t1 WHERE SUBQUERY1_t1 . `col_varchar_nokey` IN ( SELECT CHILD_SUBQUERY1_t2 . `col_varchar_key` AS CHILD_SUBQUERY1_field1 FROM ( C AS CHILD_SUBQUERY1_t1 STRAIGHT_JOIN ( ( B AS CHILD_SUBQUERY1_t2 STRAIGHT_JOIN C AS CHILD_SUBQUERY1_t3 ON (CHILD_SUBQUERY1_t3 . `col_int_nokey` = CHILD_SUBQUERY1_t2 . `col_int_key` ) ) ) ON (CHILD_SUBQUERY1_t3 . `col_varchar_key` = CHILD_SUBQUERY1_t2 . `col_varchar_nokey` ) ) WHERE CHILD_SUBQUERY1_t3 . `col_varchar_nokey` <> CHILD_SUBQUERY1_t2 . `col_varchar_nokey` ) ) IS NULL ) AND ( table1 . `col_varchar_key` >= 'p' OR table1 . `pk` IN (12, 21, 214) ) ORDER BY table1 . `col_time_key` , table1 .`pk` , CONCAT ( table2 . `col_varchar_nokey`, table2 . `col_varchar_key` ), field1 LIMIT 2",
- 2010-07-07T10:30:17 length=1009, found_semicolon=0x7ffe340e8c88) at sql_parse.cc:6027
- 2010-07-07T10:30:17 #28 0x0000000000694b8f in dispatch_command (command=COM_QUERY, thd=0x3935518,
- 2010-07-07T10:30:17 packet=0x3938899 " SELECT SQL_SMALL_RESULT table1 . `col_date_key` AS field1 FROM ( CC AS table1 STRAIGHT_JOIN CC AS table2 ON (table2 . `col_varchar_key` = table1 . `col_varchar_nokey` ) ) WHERE ( ( SELECT COUNT( SUBQUERY1_t1 . `col_varchar_nokey` ) AS SUBQUERY1_field1 FROM C AS SUBQUERY1_t1 WHERE SUBQUERY1_t1 . `col_varchar_nokey` IN ( SELECT CHILD_SUBQUERY1_t2 . `col_varchar_key` AS CHILD_SUBQUERY1_field1 FROM ( C AS CHILD_SUBQUERY1_t1 STRAIGHT_JOIN ( ( B AS CHILD_SUBQUERY1_t2 STRAIGHT_JOIN C AS CHILD_SUBQUERY1_t3 ON (CHILD_SUBQUERY1_t3 . `col_int_nokey` = CHILD_SUBQUERY1_t2 . `col_int_key` ) ) ) ON (CHILD_SUBQUERY1_t3 . `col_varchar_key` = CHILD_SUBQUERY1_t2 . `col_varchar_nokey` ) ) WHERE CHILD_SUBQUERY1_t3 . `col_varchar_nokey` <> CHILD_SUBQUERY1_t2 . `col_varchar_nokey` ) ) IS NULL ) AND ( table1 . `col_varchar_key` >= 'p' OR table1 . `pk` IN (12, 21, 214) ) ORDER BY table1 . `col_time_key` , table1 .`pk` , CONCAT ( table2 . `col_varchar_nokey`, table2 . `col_varchar_key` ), field1 LIMIT 2",
- 2010-07-07T10:30:17 packet_length=1011) at sql_parse.cc:1184
- 2010-07-07T10:30:17 #29 0x0000000000693fa9 in do_command (thd=0x3935518) at sql_parse.cc:890
- 2010-07-07T10:30:17 #30 0x000000000069101c in handle_one_connection (arg=0x3935518)
- 2010-07-07T10:30:17 at sql_connect.cc:1153
- 2010-07-07T10:30:17 #31 0x000000307ba07761 in start_thread (arg=0x7ffe340e9710)
- 2010-07-07T10:30:17 at pthread_create.c:301
- 2010-07-07T10:30:17 #32 0x000000307b6e150d in clone ()
A simplified test case will be uploaded shortly.