Details
Description
CREATE TABLE t (c DECIMAL(10,5),d DECIMAL(10,1)); |
SELECT * FROM t HAVING (SELECT MAX(d) FROM t)=c AND c+d=1; |
Leads to:
CS 11.8.1 33e0796e7a154e02a5e53c55cefc5d6feb4f5e6d (Debug) Build 15/02/2025 |
mariadbd: /test/11.8_dbg/sql/field.cc:3932: virtual Item *Field_new_decimal::get_equal_const_item(THD *, const Context &, Item *): Assertion `0' failed.
|
CS 11.8.1 33e0796e7a154e02a5e53c55cefc5d6feb4f5e6d (Debug) Build 15/02/2025 |
Core was generated by `/test/MD150225-mariadb-11.8.1-linux-x86_64-dbg/bin/mariadbd --no-defaults --max'.
|
Program terminated with signal SIGABRT, Aborted.
|
Download failed: Invalid argument. Continuing without source file ./nptl/./nptl/pthread_kill.c.
|
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
|
|
[Current thread is 1 (LWP 1153026)]
|
(gdb) bt
|
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
|
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
|
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
|
#3 0x0000149bf444526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
|
#4 0x0000149bf44288ff in __GI_abort () at ./stdlib/abort.c:79
|
#5 0x0000149bf442881b in __assert_fail_base (fmt=0x149bf45d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5633aadc43bc "0", file=file@entry=0x5633aada139b "/test/11.8_dbg/sql/field.cc", line=line@entry=3932, function=function@entry=0x5633aada2201 "virtual Item *Field_new_decimal::get_equal_const_item(THD *, const Context &, Item *)") at ./assert/assert.c:94
|
#6 0x0000149bf443b507 in __assert_fail (assertion=0x5633aadc43bc "0", file=0x5633aada139b "/test/11.8_dbg/sql/field.cc", line=3932, function=0x5633aada2201 "virtual Item *Field_new_decimal::get_equal_const_item(THD *, const Context &, Item *)") at ./assert/assert.c:103
|
#7 0x00005633aa0dc6f8 in Field_new_decimal::get_equal_const_item (this=0x149b88026a78, thd=0x149b88000d58, ctx=@0x149be7ffb0a8: {m_subst_constraint = Value_source::IDENTITY_SUBST, m_compare_handler = 0x5633ab8fb678 <type_handler_long_blob>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, const_item=0x149b8801c298)at /test/11.8_dbg/sql/field.cc:3932
|
#8 0x00005633aa14f2fa in Item_field::propagate_equal_fields (this=0x149b8801e028, thd=0x149b88000d58, ctx=@0x149be7ffb0a8: {m_subst_constraint = Value_source::IDENTITY_SUBST, m_compare_handler = 0x5633ab8fb678 <type_handler_long_blob>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, arg=0x149b8801ce30)at /test/11.8_dbg/sql/item.cc:6695
|
#9 0x00005633aa158d29 in Item_ref::propagate_equal_fields (this=0x149b8801c7c0, thd=0x149b88000d58, ctx=@0x149be7ffb0a8: {m_subst_constraint = Value_source::IDENTITY_SUBST, m_compare_handler = 0x5633ab8fb678 <type_handler_long_blob>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30)at /test/11.8_dbg/sql/item.cc:9746
|
#10 0x00005633aa152af9 in Item::propagate_equal_fields_and_change_item_tree (this=0x149b8801c7c0, thd=0x149b88000d58, ctx=@0x149be7ffb0a8: {m_subst_constraint = Value_source::IDENTITY_SUBST, m_compare_handler = 0x5633ab8fb678 <type_handler_long_blob>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30, place=0x149b8801ca58)at /test/11.8_dbg/sql/item.cc:7793
|
#11 0x00005633aa1b7213 in Item_args::propagate_equal_fields (this=0x149b8801ca50, thd=0x149b88000d58, ctx=@0x149be7ffb0a8: {m_subst_constraint = Value_source::IDENTITY_SUBST, m_compare_handler = 0x5633ab8fb678 <type_handler_long_blob>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30)at /test/11.8_dbg/sql/item_func.cc:580
|
#12 0x00005633a9b9ddde in Item_func::propagate_equal_fields (this=0x149b8801c9d8, thd=0x149b88000d58, ctx=@0x149be7ffb1a8: {m_subst_constraint = Value_source::ANY_SUBST, m_compare_handler = 0x5633ab8fb498 <type_handler_newdecimal>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30)at /test/11.8_dbg/sql/item_func.h:398
|
#13 0x00005633aa152af9 in Item::propagate_equal_fields_and_change_item_tree (this=0x149b8801c9d8, thd=0x149b88000d58, ctx=@0x149be7ffb1a8: {m_subst_constraint = Value_source::ANY_SUBST, m_compare_handler = 0x5633ab8fb498 <type_handler_newdecimal>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30, place=0x149b8801cba8)at /test/11.8_dbg/sql/item.cc:7793
|
#14 0x00005633aa1b7213 in Item_args::propagate_equal_fields (this=0x149b8801cba0, thd=0x149b88000d58, ctx=@0x149be7ffb1a8: {m_subst_constraint = Value_source::ANY_SUBST, m_compare_handler = 0x5633ab8fb498 <type_handler_newdecimal>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30)at /test/11.8_dbg/sql/item_func.cc:580
|
#15 0x00005633a9b9e4c7 in Item_bool_rowready_func2::propagate_equal_fields (this=0x149b8801cb28, thd=0x149b88000d58, ctx=@0x149be7ffb208: {m_subst_constraint = Value_source::ANY_SUBST, m_compare_handler = 0x5633ab8fb390 <type_handler_slonglong>, m_compare_collation = 0x5633ab6dcb40 <my_charset_bin>}, cond=0x149b8801ce30)at /test/11.8_dbg/sql/item_cmpfunc.h:605
|
#16 0x00005633a9da0ac1 in Item_func::build_equal_items (this=0x149b8801cb28, thd=0x149b88000d58, inherited=0x149b8801ce30, link_item_fields=false, cond_equal_ref=0x0) at /test/11.8_dbg/sql/sql_select.cc:18526
|
#17 0x00005633a9da09fe in Item_func_eq::build_equal_items (this=0x149b8801cb28, thd=0x149b88000d58, inherited=0x149b8801ce30, link_item_fields=false, cond_equal_ref=0x0)at /test/11.8_dbg/sql/sql_select.cc:18511
|
#18 0x00005633a9da01af in Item_cond_and::build_equal_items (this=0x149b8801cd58, thd=0x149b88000d58, inherited=0x149b8801ce30, link_item_fields=false, cond_equal_ref=0x149b8801dd18)at /test/11.8_dbg/sql/sql_select.cc:18381
|
#19 0x00005633a9dc27c6 in build_equal_items (join=0x149b8801d850, cond=0x149b8801cd58, inherited=0x0, join_list=0x149b88019fa8, ignore_on_conds=true, cond_equal_ref=0x149b8801dd18, link_equal_fields=false) at /test/11.8_dbg/sql/sql_select.cc:18628
|
#20 0x00005633a9d71373 in optimize_cond (join=0x149b8801d850, conds=0x149b8801cd58, join_list=0x149b88019fa8, ignore_on_conds=true, cond_value=0x149b8801dbec, cond_equal=0x149b8801dd18, flags=0)at /test/11.8_dbg/sql/sql_select.cc:20445
|
#21 0x00005633a9d6df2c in JOIN::optimize_inner (this=0x149b8801d850)at /test/11.8_dbg/sql/sql_select.cc:2445
|
#22 0x00005633a9d6a308 in JOIN::optimize (this=0x149b8801d850)at /test/11.8_dbg/sql/sql_select.cc:1994
|
#23 0x00005633a9d62299 in mysql_select (thd=0x149b88000d58, tables=0x149b8801a428, fields=@0x149b8801a0a8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x149b8801a3d8, last = 0x149b8801e298, elements = 2}, <No data fields>}, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x149b8801cd58, proc_param=0x0, select_options=2164525824, result=0x149b8801d828, unit=0x149b88005080, select_lex=0x149b88019df0)at /test/11.8_dbg/sql/sql_select.cc:5361
|
#24 0x00005633a9d61dd5 in handle_select (thd=0x149b88000d58, lex=0x149b88004fa0, result=0x149b8801d828, setup_tables_done_option=0)at /test/11.8_dbg/sql/sql_select.cc:633
|
#25 0x00005633a9d09771 in execute_sqlcom_select (thd=0x149b88000d58, all_tables=0x149b8801a428) at /test/11.8_dbg/sql/sql_parse.cc:6191
|
#26 0x00005633a9cfe650 in mysql_execute_command (thd=0x149b88000d58, is_called_from_prepared_stmt=false) at /test/11.8_dbg/sql/sql_parse.cc:3979
|
#27 0x00005633a9cf67d4 in mysql_parse (thd=0x149b88000d58, rawbuf=0x149b88019d20 "SELECT * FROM t HAVING (SELECT MAX(d) FROM t)=c AND c+d=1", length=57, parser_state=0x149be7ffda20)at /test/11.8_dbg/sql/sql_parse.cc:7915
|
#28 0x00005633a9cf3ba4 in dispatch_command (command=COM_QUERY, thd=0x149b88000d58, packet=0x149b8800b099 "SELECT * FROM t HAVING (SELECT MAX(d) FROM t)=c AND c+d=1", packet_length=57, blocking=true) at /test/11.8_dbg/sql/sql_parse.cc:1902
|
#29 0x00005633a9cf7383 in do_command (thd=0x149b88000d58, blocking=true)at /test/11.8_dbg/sql/sql_parse.cc:1415
|
#30 0x00005633a9ee0a19 in do_handle_one_connection (connect=0x5633ae93bf98, put_in_cache=true) at /test/11.8_dbg/sql/sql_connect.cc:1415
|
#31 0x00005633a9ee07be in handle_one_connection (arg=0x5633ae9551a8)at /test/11.8_dbg/sql/sql_connect.cc:1327
|
#32 0x0000149bf449ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
|
#33 0x0000149bf4529c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
Bug confirmed present in:
MariaDB: 10.5.29 (dbg), 10.6.22 (dbg), 10.11.12 (dbg), 11.4.6 (dbg), 11.8.1 (dbg), 12.0.0 (dbg)
Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.5.29 (opt), 10.6.22 (opt), 10.11.12 (opt), 11.4.6 (opt), 11.8.1 (opt), 12.0.0 (opt)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.44 (dbg), 5.7.44 (opt), 8.0.36 (dbg), 8.0.36 (opt), 9.1.0 (dbg), 9.1.0 (opt)
Present for at least MyISAM and InnoDB. Testcase is CLI and MTR compatible. The testcase does not produce any UBSAN/ASAN errors.