|
Secondary testcase leading to different code path
USE test;
|
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + j), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, h)), INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p));
|
INSERT INTO t (a,b) VALUES (0, 0), (1, NULL), (NULL, 2), (NULL, NULL);
|
SET SQL_BUFFER_RESULT=1;
|
SELECT CONCAT('abcdefghijklmnopqrstuvwxyz',c, 'abcdefghijklmnopqrstuvwxyz'), cast(json_extract(j, 'abcdefghijklmnopqrstuvwxyz') as DECIMAL(5,2)) FROM t WHERE c='abcdefghijklmnopqrstuvwxyz';
|
Leads to:
|
10.4.15 eae968f62d285de97ed607c87bc131cd863d5d03 (Debug)
|
mysqld: /test/10.4_dbg/sql/sql_type.cc:195: VDec::VDec(Item*): Assertion `(m_ptr == __null) == item->null_value' failed.
|
|
10.4.15 eae968f62d285de97ed607c87bc131cd863d5d03 (Debug)
|
Core was generated by `/test/MD110820-mariadb-10.4.15-linux-x86_64-dbg/bin/mysqld --no-defaults --core'.
|
Program terminated with signal SIGABRT, Aborted.
|
#0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
|
at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
|
[Current thread is 1 (Thread 0x145dd0711700 (LWP 468591))]
|
(gdb) bt
|
#0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
|
#1 0x00005642219898a6 in my_write_core (sig=sig@entry=6) at /test/10.4_dbg/mysys/stacktrace.c:482
|
#2 0x0000564221105cdc in handle_fatal_signal (sig=6) at /test/10.4_dbg/sql/signal_handler.cc:343
|
#3 <signal handler called>
|
#4 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
|
#5 0x0000145dce9a88b1 in __GI_abort () at abort.c:79
|
#6 0x0000145dce99842a in __assert_fail_base (fmt=0x145dceb1fa38 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x564221ad39f8 "(m_ptr == __null) == item->null_value", file=file@entry=0x564221ad3598 "/test/10.4_dbg/sql/sql_type.cc", line=line@entry=195, function=function@entry=0x564221ad9b40 <VDec::VDec(Item*)::__PRETTY_FUNCTION__> "VDec::VDec(Item*)") at assert.c:92
|
#7 0x0000145dce9984a2 in __GI___assert_fail (assertion=assertion@entry=0x564221ad39f8 "(m_ptr == __null) == item->null_value", file=file@entry=0x564221ad3598 "/test/10.4_dbg/sql/sql_type.cc", line=line@entry=195, function=function@entry=0x564221ad9b40 <VDec::VDec(Item*)::__PRETTY_FUNCTION__> "VDec::VDec(Item*)") at assert.c:101
|
#8 0x00005642210155d6 in VDec::VDec (this=0x145dd070d830, item=0x145da886ddb8) at /test/10.4_dbg/sql/sql_type.cc:195
|
#9 0x000056422118e5c4 in Item_decimal_typecast::val_decimal (this=0x145da886deb8, dec=0x145dd070d8f8) at /test/10.4_dbg/sql/item_func.cc:976
|
#10 0x0000564221015572 in VDec::VDec (this=0x145dd070d8f0, item=0x145da886deb8) at /test/10.4_dbg/sql/sql_type.cc:194
|
#11 0x0000564221137842 in Item::save_decimal_in_field (this=<optimized out>, field=0x145da8848070, no_conversions=<optimized out>) at /test/10.4_dbg/sql/item.cc:6553
|
#12 0x000056422100b2b8 in Type_handler_decimal_result::Item_save_in_field (this=<optimized out>, item=<optimized out>, field=<optimized out>, no_conversions=<optimized out>) at /test/10.4_dbg/sql/sql_type.cc:3695
|
#13 0x0000564221121fac in Item::save_in_field (this=0x145da886deb8, field=0x145da8848070, no_conversions=<optimized out>) at /test/10.4_dbg/sql/item.cc:6573
|
#14 0x0000564220dfe39a in Item_result_field::save_in_result_field (this=<optimized out>, no_conversions=<optimized out>) at /test/10.4_dbg/sql/item.h:3235
|
#15 0x0000564220eb4f3a in copy_funcs (func_ptr=0x145da8991430, thd=0x145da8815070) at /test/10.4_dbg/sql/sql_select.cc:25492
|
#16 0x0000564220eb4feb in end_write (join=0x145da886f448, join_tab=0x145da8871a80, end_of_records=<optimized out>) at /test/10.4_dbg/sql/sql_select.cc:21821
|
#17 0x0000564220ec0309 in AGGR_OP::put_record (this=this@entry=0x145da8872480, end_of_records=end_of_records@entry=false) at /test/10.4_dbg/sql/sql_select.cc:28664
|
#18 0x0000564220ec0a87 in AGGR_OP::put_record (this=0x145da8872480) at /test/10.4_dbg/sql/sql_select.h:1048
|
#19 sub_select_postjoin_aggr (join=0x145da886f448, join_tab=0x145da8871a80, end_of_records=<optimized out>) at /test/10.4_dbg/sql/sql_select.cc:20120
|
#20 0x0000564220e8f660 in evaluate_join_record (join=join@entry=0x145da886f448, join_tab=join_tab@entry=0x145da88716d8, error=error@entry=0) at /test/10.4_dbg/sql/sql_select.cc:20620
|
#21 0x0000564220e9df1e in sub_select (join=0x145da886f448, join_tab=0x145da88716d8, end_of_records=<optimized out>) at /test/10.4_dbg/sql/sql_select.cc:20400
|
#22 0x0000564220ecfa70 in do_select (procedure=0x0, join=0x145da886f448) at /test/10.4_dbg/sql/sql_select.cc:19938
|
#23 JOIN::exec_inner (this=this@entry=0x145da886f448) at /test/10.4_dbg/sql/sql_select.cc:4473
|
#24 0x0000564220ed004d in JOIN::exec (this=this@entry=0x145da886f448) at /test/10.4_dbg/sql/sql_select.cc:4255
|
#25 0x0000564220ece3f3 in mysql_select (thd=thd@entry=0x145da8815070, tables=<optimized out>, wild_num=0, fields=@0x145da886d3b0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x145da886db18, last = 0x145da886dfc0, elements = 2}, <No data fields>}, conds=0x145da886e908, og_num=<optimized out>, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147879680, result=0x145da886f420, unit=0x145da8818f98, select_lex=0x145da886d268) at /test/10.4_dbg/sql/sql_select.cc:4687
|
#26 0x0000564220ece71e in handle_select (thd=thd@entry=0x145da8815070, lex=lex@entry=0x145da8818ed8, result=result@entry=0x145da886f420, setup_tables_done_option=setup_tables_done_option@entry=0) at /test/10.4_dbg/sql/sql_select.cc:410
|
#27 0x0000564220e473c6 in execute_sqlcom_select (thd=thd@entry=0x145da8815070, all_tables=0x145da886e050) at /test/10.4_dbg/sql/sql_parse.cc:6355
|
#28 0x0000564220e5279a in mysql_execute_command (thd=thd@entry=0x145da8815070) at /test/10.4_dbg/sql/sql_parse.cc:3889
|
#29 0x0000564220e5d090 in mysql_parse (thd=thd@entry=0x145da8815070, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x145dd0710460, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:7896
|
#30 0x0000564220e5f920 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x145da8815070, packet=packet@entry=0x145da8857071 "", packet_length=packet_length@entry=188, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:1834
|
#31 0x0000564220e6335b in do_command (thd=0x145da8815070) at /test/10.4_dbg/sql/sql_parse.cc:1352
|
#32 0x0000564220f8f8b6 in do_handle_one_connection (connect=connect@entry=0x145dcd435790) at /test/10.4_dbg/sql/sql_connect.cc:1412
|
#33 0x0000564220f8f9d6 in handle_one_connection (arg=0x145dcd435790) at /test/10.4_dbg/sql/sql_connect.cc:1316
|
#34 0x0000145dcf90f6db in start_thread (arg=0x145dd0711700) at pthread_create.c:463
|
#35 0x0000145dcea89a3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
Bug confirmed present in:
MariaDB: 10.4.15 (dbg), 10.5.6 (dbg)
Bug confirmed not present in:
MariaDB: 10.1.47 (dbg), 10.1.47 (opt), 10.2.34 (dbg), 10.2.34 (opt), 10.3.25 (dbg), 10.3.25 (opt), 10.4.15 (opt), 10.5.6 (opt)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.47 (dbg), 5.6.47 (opt), 5.7.29 (dbg), 5.7.29 (opt), 8.0.19 (dbg), 8.0.19 (opt)
|