Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-29540

Incorrect sequence values in INSERT SELECT

Details

    Description

      The sequence used as the default value in the table ('t1' in my example) produces incorrect values when the data is inserted from INSERT SELECT.

      Example:

      SELECT VERSION();
       
      DROP TABLE IF EXISTS `t1`;
      DROP SEQUENCE IF EXISTS `s1`;
       
      CREATE SEQUENCE IF NOT EXISTS `s1`;
       
      CREATE TABLE IF NOT EXISTS `t1` (
        `a` BIGINT UNSIGNED NOT NULL PRIMARY KEY
            DEFAULT (NEXT VALUE FOR `s1`),
        `b` CHAR(1) NOT NULL
      ) ENGINE=InnoDB;
       
      SHOW CREATE TABLE `s1`;
       
      INSERT INTO `t1` (`b`) VALUES ('a');
      INSERT INTO `t1` (`b`) VALUES ('b'), ('c');
      INSERT INTO `t1` (`b`) VALUES ('d');
      INSERT INTO `t1` (`b`)
      SELECT `c`
      FROM (
        SELECT 'e' `c`
        UNION
        SELECT 'f' `c`
        UNION
        SELECT 'g' `c`
      ) `der`;
        
      SELECT
        `a`, `b`
      FROM
        `t1`;
      

      Result:

      VERSION()
      10.6.9-MariaDB-1:10.6.9+maria~deb11
      Table Create Table
      s1 CREATE TABLE `s1` (
      `next_not_cached_value` bigint(21) NOT NULL,
      `minimum_value` bigint(21) NOT NULL,
      `maximum_value` bigint(21) NOT NULL,
      `start_value` bigint(21) NOT NULL COMMENT 'start value when sequences is created or value if RESTART is used',
      `increment` bigint(21) NOT NULL COMMENT 'increment value',
      `cache_size` bigint(21) unsigned NOT NULL,
      `cycle_option` tinyint(1) unsigned NOT NULL COMMENT '0 if no cycles are allowed, 1 if the sequence should begin a new cycle when maximum_value is passed',
      `cycle_count` bigint(21) NOT NULL COMMENT 'How many cycles have been done'
      ) ENGINE=InnoDB SEQUENCE=1
      a b
      1 a
      2 b
      3 c
      4 d
      6 e
      8 f
      10 g

      See dbfiddle.

      Related bug: MDEV-17037.

      Attachments

        Issue Links

          Activity

            danblack Daniel Black added a comment -

            Tracing the SO problem by executing the INSERT SELECT at the end a second time.

            test on mariadb-10.3-32bab2ce0518d829b4f97a272fc2431169744c75

            first retrieval breakpoint SEQUENCE::next_value

            Thread 31 "mysqld" hit Breakpoint 1, SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134dac) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707
            707	  THD *thd= table->in_use;
            (gdb) bt full
            #0  SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134dac) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707
                    thd = <optimized out>
                    res_value = <optimized out>
                    org_reserved_until = <optimized out>
                    add_to = <optimized out>
                    out_of_values = <optimized out>
            #1  0x000000000091dcc3 in Item_func_nextval::val_int (this=0x7f1af0058010) at /home/dan/repos/mariadb-server-10.3/sql/item_func.cc:6842
                    buff = "\000\000\000\000\000\000\000\000~Ă‹\000\000\000\000\000 N\001\360\032\177\000\000\320\350p\000\000\000\000\000\310v\004\360\032\177\000\000(\b\006\360\032\177\000\000\250\005\006\360\032\177\000\000\235\230z\000\000\000\000\000\340*\001\360\032\177\000\000S\022{\000\000\000\000"
                    key_buff = {<Sql_alloc> = {<No data fields>}, Ptr = 0x7f1b5c134dc0 "", str_length = 80, Alloced_length = 80, extra_alloc = 0, alloced = false, thread_specific = false, str_charset = 0x153caa0 <my_charset_bin>}
                    length = 8
                    thd = <optimized out>
                    key = <optimized out>
                    entry = 0x7f1af004ec10
                    value = <optimized out>
                    error = <optimized out>
            #2  0x00000000007e5729 in Item::save_int_in_field (this=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7002
                    nr = <optimized out>
            #3  Type_handler_int_result::Item_save_in_field (this=<optimized out>, item=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_type.cc:2596
            No locals.
            #4  0x00000000008acf2e in Item::save_in_field (this=0x7f1af0058010, field=0x7f1af00554e8, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7012
                    error = <optimized out>
            #5  0x00000000007551fe in TABLE::update_default_fields (this=0x7f1af0056888, ignore_errors=true) at /home/dan/repos/mariadb-server-10.3/sql/table.cc:8226
                    field = 0x7f1af00554e8
                    res = 0
                    backup_arena = {_vptr$Query_arena = <optimized out>, free_list = 0x7f1af0060440, mem_root = 0x7f1af0006000, state = Query_arena::STMT_CONVENTIONAL_EXECUTION}
                    field_ptr = 0x7f1af00555c8
            #6  0x000000000061c924 in fill_record (thd=0x7f1af0000c58, table_arg=0x7f1af0056888, fields=@0x7f1af0005720: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7f1af0012040, last = 0x7f1af0012168, elements = 2}, <No data fields>}, values=<optimized out>, ignore_errors=true, update=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_base.cc:8497
                    f = {<base_list_iterator> = {list = <optimized out>, el = 0x1538fe0 <end_of_list>, prev = <synthetic pointer>, current = <synthetic pointer>}, <No data fields>}
                    v = {<base_list_iterator> = {list = <optimized out>, el = 0x7f1af00123c8, prev = <synthetic pointer>, current = <synthetic pointer>}, <No data fields>}
                    only_unvers_fields = <optimized out>
                    save_no_errors = false
                    save_abort_on_warning = true
                    fld = <optimized out>
                    value = <optimized out>
                    rfield = <optimized out>
                    table = <optimized out>
                    field = <optimized out>
            #7  0x000000000061cbde in fill_record_n_invoke_before_triggers (thd=0x7f1af003dcd0, table=0x7f1af0042658, fields=<error reading variable: Cannot access memory at address 0x0>, values=@0x7f1b5c134dac: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x0, last = 0x0, elements = 0}, <No data fields>}, ignore_errors=true, event=TRG_EVENT_INSERT) at /home/dan/repos/mariadb-server-10.3/sql/sql_base.cc:8632
                    triggers = 0x0
                    result = <optimized out>
            #8  0x000000000064f443 in select_insert::send_data (this=0x7f1af0014368, values=@0x7f1af0042658: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7f1af003c3b0, last = 0x7f1af0043530, elements = 4026824392}, <No data fields>}) at /home/dan/repos/mariadb-server-10.3/sql/sql_insert.cc:3931
                    error = false
            #9  0x00000000006b027e in end_send (join=0x7f1af0014418, join_tab=0x7f1af0016eb0, end_of_records=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:21118
                    error = <optimized out>
                    fields = 0x7f1af0005208
            #10 0x00000000007b0e40 in JOIN_CACHE::generate_full_extensions (this=0x7f1af00606f8, rec_ptr=0x7f1af00642ce "\374\001a\001") at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2470
                    res = 0
                    rc = NESTED_LOOP_OK
            #11 0x00000000007b0cc7 in JOIN_CACHE::join_matching_records (this=0x7f1af00606f8, skip_last=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2362
                    rec_ptr = <optimized out>
                    rc = <optimized out>
                    check_only_first_match = <optimized out>
                    outer_join_first_inner = false
                    error = <optimized out>
            #12 0x00000000007b09be in JOIN_CACHE::join_records (this=0x7f1af00606f8, skip_last=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2147
                    rc = NESTED_LOOP_OK
                    outer_join_first_inner = false
                    tab = <optimized out>
            #13 0x00000000006d4964 in sub_select_cache (join=0x7f1af0014418, join_tab=0x7f1af0016b20, end_of_records=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19712
                    cache = 0x7f1af00606f8
                    rc = <optimized out>
            #14 0x00000000006afea6 in do_select (join=0x7f1af0014418, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19472
                    join_tab = 0x7f1af0016790
                    rc = 0
                    error = <optimized out>
            #15 0x00000000006af733 in JOIN::exec_inner (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4171
                    columns_list = 0x7f1af0005208
            #16 0x00000000006ab87d in JOIN::exec (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:3965
            No locals.
            #17 mysql_select (thd=0x7f1af0000c58, tables=<optimized out>, wild_num=<optimized out>, fields=<optimized out>, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4374
                    err = <optimized out>
                    free_join = true
                    join = 0x7f1af0014418
            #18 0x00000000006ab240 in handle_select (thd=0x7f1af0000c58, lex=0x7f1af0004888, result=0x7f1af0014368, setup_tables_done_option=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:372
                    unit = <optimized out>
                    select_lex = 0x7f1af00050e0
                    res = <optimized out>
            #19 0x000000000067edae in mysql_execute_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:4621
                    second_table = <optimized out>
                    sel_result = 0x7f1af0014368
                    explain = <optimized out>
                    res = <optimized out>
                    up_result = 0
                    lex = 0x7f1af0004888
                    select_lex = <optimized out>
                    first_table = 0x7f1af00118c0
                    unit = 0x7f1af0004948
                    have_table_map_for_update = <optimized out>
                    all_tables = <optimized out>
                    rpl_filter = <optimized out>
                    orig_binlog_format = <optimized out>
                    orig_current_stmt_binlog_format = <optimized out>
                    error = <optimized out>
                    wsrep_error_label = <optimized out>
            #20 0x0000000000679637 in mysql_parse (thd=0x7f1af0000c58, rawbuf=0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", length=123, parser_state=0x7f1b5c135680, is_com_multi=<optimized out>, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:7871
                    found_semicolon = <optimized out>
                    error = <optimized out>
                    lex = 0x7f1af0004888
                    err = false
            #21 0x0000000000676cda in dispatch_command (command=COM_QUERY, thd=0x7f1af0000c58, packet=0x7f1af0007399 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", packet_length=123, is_com_multi=false, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1852
                    parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f1af0000c58, m_ptr = 0x7f1af001179c "\004", m_tok_start = 0x7f1af001179c "\004", m_tok_end = 0x7f1af001179c "\004", m_end_of_query = 0x7f1af001179b "", m_tok_start_prev = 0x7f1af001179b "", m_buf = 0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", m_buf_length = 123, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f1af00117f8 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", m_cpp_ptr = 0x7f1af0011873 "", m_cpp_tok_start = 0x7f1af0011873 "", m_cpp_tok_start_prev = 0x7f1af0011873 "", m_cpp_tok_end = 0x7f1af0011873 "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f1af0011869 "SHORT_NAME", m_cpp_text_end = 0x7f1af0011873 "", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0}
                    packet_end = <optimized out>
                    net = <optimized out>
                    error = false
                    do_end_of_statement = true
                    drop_more_results = false
            #22 0x0000000000684cd7 in do_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1398
                    packet = <optimized out>
                    packet_length = <optimized out>
                    net = <optimized out>
                    command = COM_QUERY
                    return_value = <optimized out>
            #23 0x00000000007855b2 in do_handle_one_connection (connect=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1403
                    create_user = true
                    thr_create_utime = <optimized out>
                    thd = <optimized out>
            #24 0x0000000000785383 in handle_one_connection (arg=0x2a5d538) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1308
                    connect = 0x2a5d538
            #25 0x00007f1b5d68ce2d in start_thread () from /lib64/libc.so.6
            No symbol table info available.
            #26 0x00007f1b5d7121b0 in clone3 () from /lib64/libc.so.6
            No symbol table info available.
            (gdb) p *this
            $1 = {<sequence_definition> = {<Sql_alloc> = {<No data fields>}, reserved_until = 1001, min_value = 1, max_value = 9223372036854775806, start = 1, increment = 1, cache = 1000, round = 0, restart = 0, cycle = false, used_fields = 63, real_increment = 1, next_free_value = 7}, all_values_used = false, initialized = SEQUENCE::SEQ_READY_TO_USE, mutex = {m_rwlock = {__data = {__readers = 1, __writers = 0, __wrphase_futex = 1, __writers_futex = 0, __pad3 = 0, __pad4 = 0, __cur_writer = 0, __shared = 0, __rwelision = 0 '\000', __pad1 = "\000\000\000\000\000\000", __pad2 = 0, __flags = 0}, __size = "\001\000\000\000\000\000\000\000\001", '\000' <repeats 46 times>, __align = 1}, m_psi = 0x0}}
            (gdb) c
            Continuing.
            
            

            sql/sql_insert.cc:3931 (select_insert::send_data) invokes fill_record_n_invoke_before_triggers which populates defaults.

            second occurance on breakpoint breakpoint SEQUENCE::next_value

            Thread 31 "mysqld" hit Breakpoint 1, SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134e4c) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707
            707	  THD *thd= table->in_use;
            (gdb) bt full
            #0  SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134e4c) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707
                    thd = <optimized out>
                    res_value = <optimized out>
                    org_reserved_until = <optimized out>
                    add_to = <optimized out>
                    out_of_values = <optimized out>
            #1  0x000000000091dcc3 in Item_func_nextval::val_int (this=0x7f1af0058010) at /home/dan/repos/mariadb-server-10.3/sql/item_func.cc:6842
                    buff = "\350T\005\360\032\177\000\000.ĎŠ\000\000\000\000\000h\214\a\001\000\000\000\000\210h\005\360\032\177\000\000\001\000\000\000\000\000\000\000\320U\005\360\032\177\000\000\350T\005\360\032\177\000\000\376Qu\000\000\000\000\000\000`\000\360\032\177\000\000\310#\001\360\032\177\000"
                    key_buff = {<Sql_alloc> = {<No data fields>}, Ptr = 0x7f1b5c134e60 "\350T\005\360\032\177", str_length = 80, Alloced_length = 80, extra_alloc = 0, alloced = false, thread_specific = false, str_charset = 0x153caa0 <my_charset_bin>}
                    length = 8
                    thd = <optimized out>
                    key = <optimized out>
                    entry = 0x7f1af004ec10
                    value = <optimized out>
                    error = <optimized out>
            #2  0x00000000007e5729 in Item::save_int_in_field (this=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7002
                    nr = <optimized out>
            #3  Type_handler_int_result::Item_save_in_field (this=<optimized out>, item=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_type.cc:2596
            No locals.
            #4  0x00000000008acf2e in Item::save_in_field (this=0x7f1af0058010, field=0x7f1af00554e8, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7012
                    error = <optimized out>
            #5  0x00000000007551fe in TABLE::update_default_fields (this=0x7f1af0056888, ignore_errors=false) at /home/dan/repos/mariadb-server-10.3/sql/table.cc:8226
                    field = 0x7f1af00554e8
                    res = 0
                    backup_arena = {_vptr$Query_arena = <optimized out>, free_list = 0x7f1af0060440, mem_root = 0x7f1af0006000, state = Query_arena::STMT_CONVENTIONAL_EXECUTION}
                    field_ptr = 0x7f1af00555c8
            #6  0x000000000064f460 in select_insert::send_data (this=0x7f1af0014368, values=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_insert.cc:3933
                    error = false
            #7  0x00000000006b027e in end_send (join=0x7f1af0014418, join_tab=0x7f1af0016eb0, end_of_records=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:21118
                    error = <optimized out>
                    fields = 0x7f1af0005208
            #8  0x00000000007b0e40 in JOIN_CACHE::generate_full_extensions (this=0x7f1af00606f8, rec_ptr=0x7f1af00642ce "\374\001a\001") at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2470
                    res = 0
                    rc = NESTED_LOOP_OK
            #9  0x00000000007b0cc7 in JOIN_CACHE::join_matching_records (this=0x7f1af00606f8, skip_last=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2362
                    rec_ptr = <optimized out>
                    rc = <optimized out>
                    check_only_first_match = <optimized out>
                    outer_join_first_inner = false
                    error = <optimized out>
            #10 0x00000000007b09be in JOIN_CACHE::join_records (this=0x7f1af00606f8, skip_last=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2147
                    rc = NESTED_LOOP_OK
                    outer_join_first_inner = false
                    tab = <optimized out>
            #11 0x00000000006d4964 in sub_select_cache (join=0x7f1af0014418, join_tab=0x7f1af0016b20, end_of_records=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19712
                    cache = 0x7f1af00606f8
                    rc = <optimized out>
            #12 0x00000000006afea6 in do_select (join=0x7f1af0014418, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19472
                    join_tab = 0x7f1af0016790
                    rc = 0
                    error = <optimized out>
            #13 0x00000000006af733 in JOIN::exec_inner (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4171
                    columns_list = 0x7f1af0005208
            #14 0x00000000006ab87d in JOIN::exec (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:3965
            No locals.
            #15 mysql_select (thd=0x7f1af0000c58, tables=<optimized out>, wild_num=<optimized out>, fields=<optimized out>, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4374
                    err = <optimized out>
                    free_join = true
                    join = 0x7f1af0014418
            #16 0x00000000006ab240 in handle_select (thd=0x7f1af0000c58, lex=0x7f1af0004888, result=0x7f1af0014368, setup_tables_done_option=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:372
                    unit = <optimized out>
                    select_lex = 0x7f1af00050e0
                    res = <optimized out>
            #17 0x000000000067edae in mysql_execute_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:4621
                    second_table = <optimized out>
                    sel_result = 0x7f1af0014368
                    explain = <optimized out>
                    res = <optimized out>
                    up_result = 0
                    lex = 0x7f1af0004888
                    select_lex = <optimized out>
                    first_table = 0x7f1af00118c0
                    unit = 0x7f1af0004948
                    have_table_map_for_update = <optimized out>
                    all_tables = <optimized out>
                    rpl_filter = <optimized out>
                    orig_binlog_format = <optimized out>
                    orig_current_stmt_binlog_format = <optimized out>
                    error = <optimized out>
                    wsrep_error_label = <optimized out>
            #18 0x0000000000679637 in mysql_parse (thd=0x7f1af0000c58, rawbuf=0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", length=123, parser_state=0x7f1b5c135680, is_com_multi=<optimized out>, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:7871
                    found_semicolon = <optimized out>
                    error = <optimized out>
                    lex = 0x7f1af0004888
                    err = false
            #19 0x0000000000676cda in dispatch_command (command=COM_QUERY, thd=0x7f1af0000c58, packet=0x7f1af0007399 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", packet_length=123, is_com_multi=false, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1852
                    parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f1af0000c58, m_ptr = 0x7f1af001179c "\004", m_tok_start = 0x7f1af001179c "\004", m_tok_end = 0x7f1af001179c "\004", m_end_of_query = 0x7f1af001179b "", m_tok_start_prev = 0x7f1af001179b "", m_buf = 0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", m_buf_length = 123, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f1af00117f8 "INSERT INTO T2(T1_ID,NAME) SELECT  t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1   ON t2.T1_NAME =t1.SHORT_NAME", m_cpp_ptr = 0x7f1af0011873 "", m_cpp_tok_start = 0x7f1af0011873 "", m_cpp_tok_start_prev = 0x7f1af0011873 "", m_cpp_tok_end = 0x7f1af0011873 "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f1af0011869 "SHORT_NAME", m_cpp_text_end = 0x7f1af0011873 "", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0}
                    packet_end = <optimized out>
                    net = <optimized out>
                    error = false
                    do_end_of_statement = true
                    drop_more_results = false
            #20 0x0000000000684cd7 in do_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1398
                    packet = <optimized out>
                    packet_length = <optimized out>
                    net = <optimized out>
                    command = COM_QUERY
                    return_value = <optimized out>
            #21 0x00000000007855b2 in do_handle_one_connection (connect=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1403
                    create_user = true
                    thr_create_utime = <optimized out>
                    thd = <optimized out>
            #22 0x0000000000785383 in handle_one_connection (arg=0x2a5d538) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1308
                    connect = 0x2a5d538
            #23 0x00007f1b5d68ce2d in start_thread () from /lib64/libc.so.6
            No symbol table info available.
            #24 0x00007f1b5d7121b0 in clone3 () from /lib64/libc.so.6
            No symbol table info available.
            (gdb) p *this
            $2 = {<sequence_definition> = {<Sql_alloc> = {<No data fields>}, reserved_until = 1001, min_value = 1, max_value = 9223372036854775806, start = 1, increment = 1, cache = 1000, round = 0, restart = 0, cycle = false, used_fields = 63, real_increment = 1, next_free_value = 8}, all_values_used = false, initialized = SEQUENCE::SEQ_READY_TO_USE, mutex = {m_rwlock = {__data = {__readers = 1, __writers = 0, __wrphase_futex = 1, __writers_futex = 0, __pad3 = 0, __pad4 = 0, __cur_writer = 0, __shared = 0, __rwelision = 0 '\000', __pad1 = "\000\000\000\000\000\000", __pad2 = 0, __flags = 0}, __size = "\001\000\000\000\000\000\000\000\001", '\000' <repeats 46 times>, __align = 1}, m_psi = 0x0}}
            

            sql/sql_insert.cc:3933, two lines after the first breakpoint, calls TABLE::update_default_fields updating the result a second time.

            danblack Daniel Black added a comment - Tracing the SO problem by executing the INSERT SELECT at the end a second time. test on mariadb-10.3-32bab2ce0518d829b4f97a272fc2431169744c75 first retrieval breakpoint SEQUENCE::next_value Thread 31 "mysqld" hit Breakpoint 1, SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134dac) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707 707 THD *thd= table->in_use; (gdb) bt full #0 SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134dac) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707 thd = <optimized out> res_value = <optimized out> org_reserved_until = <optimized out> add_to = <optimized out> out_of_values = <optimized out> #1 0x000000000091dcc3 in Item_func_nextval::val_int (this=0x7f1af0058010) at /home/dan/repos/mariadb-server-10.3/sql/item_func.cc:6842 buff = "\000\000\000\000\000\000\000\000~Ă‹\000\000\000\000\000 N\001\360\032\177\000\000\320\350p\000\000\000\000\000\310v\004\360\032\177\000\000(\b\006\360\032\177\000\000\250\005\006\360\032\177\000\000\235\230z\000\000\000\000\000\340*\001\360\032\177\000\000S\022{\000\000\000\000" key_buff = {<Sql_alloc> = {<No data fields>}, Ptr = 0x7f1b5c134dc0 "", str_length = 80, Alloced_length = 80, extra_alloc = 0, alloced = false, thread_specific = false, str_charset = 0x153caa0 <my_charset_bin>} length = 8 thd = <optimized out> key = <optimized out> entry = 0x7f1af004ec10 value = <optimized out> error = <optimized out> #2 0x00000000007e5729 in Item::save_int_in_field (this=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7002 nr = <optimized out> #3 Type_handler_int_result::Item_save_in_field (this=<optimized out>, item=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_type.cc:2596 No locals. #4 0x00000000008acf2e in Item::save_in_field (this=0x7f1af0058010, field=0x7f1af00554e8, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7012 error = <optimized out> #5 0x00000000007551fe in TABLE::update_default_fields (this=0x7f1af0056888, ignore_errors=true) at /home/dan/repos/mariadb-server-10.3/sql/table.cc:8226 field = 0x7f1af00554e8 res = 0 backup_arena = {_vptr$Query_arena = <optimized out>, free_list = 0x7f1af0060440, mem_root = 0x7f1af0006000, state = Query_arena::STMT_CONVENTIONAL_EXECUTION} field_ptr = 0x7f1af00555c8 #6 0x000000000061c924 in fill_record (thd=0x7f1af0000c58, table_arg=0x7f1af0056888, fields=@0x7f1af0005720: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7f1af0012040, last = 0x7f1af0012168, elements = 2}, <No data fields>}, values=<optimized out>, ignore_errors=true, update=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_base.cc:8497 f = {<base_list_iterator> = {list = <optimized out>, el = 0x1538fe0 <end_of_list>, prev = <synthetic pointer>, current = <synthetic pointer>}, <No data fields>} v = {<base_list_iterator> = {list = <optimized out>, el = 0x7f1af00123c8, prev = <synthetic pointer>, current = <synthetic pointer>}, <No data fields>} only_unvers_fields = <optimized out> save_no_errors = false save_abort_on_warning = true fld = <optimized out> value = <optimized out> rfield = <optimized out> table = <optimized out> field = <optimized out> #7 0x000000000061cbde in fill_record_n_invoke_before_triggers (thd=0x7f1af003dcd0, table=0x7f1af0042658, fields=<error reading variable: Cannot access memory at address 0x0>, values=@0x7f1b5c134dac: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x0, last = 0x0, elements = 0}, <No data fields>}, ignore_errors=true, event=TRG_EVENT_INSERT) at /home/dan/repos/mariadb-server-10.3/sql/sql_base.cc:8632 triggers = 0x0 result = <optimized out> #8 0x000000000064f443 in select_insert::send_data (this=0x7f1af0014368, values=@0x7f1af0042658: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7f1af003c3b0, last = 0x7f1af0043530, elements = 4026824392}, <No data fields>}) at /home/dan/repos/mariadb-server-10.3/sql/sql_insert.cc:3931 error = false #9 0x00000000006b027e in end_send (join=0x7f1af0014418, join_tab=0x7f1af0016eb0, end_of_records=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:21118 error = <optimized out> fields = 0x7f1af0005208 #10 0x00000000007b0e40 in JOIN_CACHE::generate_full_extensions (this=0x7f1af00606f8, rec_ptr=0x7f1af00642ce "\374\001a\001") at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2470 res = 0 rc = NESTED_LOOP_OK #11 0x00000000007b0cc7 in JOIN_CACHE::join_matching_records (this=0x7f1af00606f8, skip_last=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2362 rec_ptr = <optimized out> rc = <optimized out> check_only_first_match = <optimized out> outer_join_first_inner = false error = <optimized out> #12 0x00000000007b09be in JOIN_CACHE::join_records (this=0x7f1af00606f8, skip_last=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2147 rc = NESTED_LOOP_OK outer_join_first_inner = false tab = <optimized out> #13 0x00000000006d4964 in sub_select_cache (join=0x7f1af0014418, join_tab=0x7f1af0016b20, end_of_records=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19712 cache = 0x7f1af00606f8 rc = <optimized out> #14 0x00000000006afea6 in do_select (join=0x7f1af0014418, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19472 join_tab = 0x7f1af0016790 rc = 0 error = <optimized out> #15 0x00000000006af733 in JOIN::exec_inner (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4171 columns_list = 0x7f1af0005208 #16 0x00000000006ab87d in JOIN::exec (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:3965 No locals. #17 mysql_select (thd=0x7f1af0000c58, tables=<optimized out>, wild_num=<optimized out>, fields=<optimized out>, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4374 err = <optimized out> free_join = true join = 0x7f1af0014418 #18 0x00000000006ab240 in handle_select (thd=0x7f1af0000c58, lex=0x7f1af0004888, result=0x7f1af0014368, setup_tables_done_option=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:372 unit = <optimized out> select_lex = 0x7f1af00050e0 res = <optimized out> #19 0x000000000067edae in mysql_execute_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:4621 second_table = <optimized out> sel_result = 0x7f1af0014368 explain = <optimized out> res = <optimized out> up_result = 0 lex = 0x7f1af0004888 select_lex = <optimized out> first_table = 0x7f1af00118c0 unit = 0x7f1af0004948 have_table_map_for_update = <optimized out> all_tables = <optimized out> rpl_filter = <optimized out> orig_binlog_format = <optimized out> orig_current_stmt_binlog_format = <optimized out> error = <optimized out> wsrep_error_label = <optimized out> #20 0x0000000000679637 in mysql_parse (thd=0x7f1af0000c58, rawbuf=0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", length=123, parser_state=0x7f1b5c135680, is_com_multi=<optimized out>, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:7871 found_semicolon = <optimized out> error = <optimized out> lex = 0x7f1af0004888 err = false #21 0x0000000000676cda in dispatch_command (command=COM_QUERY, thd=0x7f1af0000c58, packet=0x7f1af0007399 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", packet_length=123, is_com_multi=false, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1852 parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f1af0000c58, m_ptr = 0x7f1af001179c "\004", m_tok_start = 0x7f1af001179c "\004", m_tok_end = 0x7f1af001179c "\004", m_end_of_query = 0x7f1af001179b "", m_tok_start_prev = 0x7f1af001179b "", m_buf = 0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", m_buf_length = 123, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f1af00117f8 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", m_cpp_ptr = 0x7f1af0011873 "", m_cpp_tok_start = 0x7f1af0011873 "", m_cpp_tok_start_prev = 0x7f1af0011873 "", m_cpp_tok_end = 0x7f1af0011873 "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f1af0011869 "SHORT_NAME", m_cpp_text_end = 0x7f1af0011873 "", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0} packet_end = <optimized out> net = <optimized out> error = false do_end_of_statement = true drop_more_results = false #22 0x0000000000684cd7 in do_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1398 packet = <optimized out> packet_length = <optimized out> net = <optimized out> command = COM_QUERY return_value = <optimized out> #23 0x00000000007855b2 in do_handle_one_connection (connect=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1403 create_user = true thr_create_utime = <optimized out> thd = <optimized out> #24 0x0000000000785383 in handle_one_connection (arg=0x2a5d538) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1308 connect = 0x2a5d538 #25 0x00007f1b5d68ce2d in start_thread () from /lib64/libc.so.6 No symbol table info available. #26 0x00007f1b5d7121b0 in clone3 () from /lib64/libc.so.6 No symbol table info available. (gdb) p *this $1 = {<sequence_definition> = {<Sql_alloc> = {<No data fields>}, reserved_until = 1001, min_value = 1, max_value = 9223372036854775806, start = 1, increment = 1, cache = 1000, round = 0, restart = 0, cycle = false, used_fields = 63, real_increment = 1, next_free_value = 7}, all_values_used = false, initialized = SEQUENCE::SEQ_READY_TO_USE, mutex = {m_rwlock = {__data = {__readers = 1, __writers = 0, __wrphase_futex = 1, __writers_futex = 0, __pad3 = 0, __pad4 = 0, __cur_writer = 0, __shared = 0, __rwelision = 0 '\000', __pad1 = "\000\000\000\000\000\000", __pad2 = 0, __flags = 0}, __size = "\001\000\000\000\000\000\000\000\001", '\000' <repeats 46 times>, __align = 1}, m_psi = 0x0}} (gdb) c Continuing. sql/sql_insert.cc:3931 (select_insert::send_data) invokes fill_record_n_invoke_before_triggers which populates defaults. second occurance on breakpoint breakpoint SEQUENCE::next_value Thread 31 "mysqld" hit Breakpoint 1, SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134e4c) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707 707 THD *thd= table->in_use; (gdb) bt full #0 SEQUENCE::next_value (this=0x7f1af003dcd0, table=0x7f1af0042658, second_round=false, error=0x7f1b5c134e4c) at /home/dan/repos/mariadb-server-10.3/sql/sql_sequence.cc:707 thd = <optimized out> res_value = <optimized out> org_reserved_until = <optimized out> add_to = <optimized out> out_of_values = <optimized out> #1 0x000000000091dcc3 in Item_func_nextval::val_int (this=0x7f1af0058010) at /home/dan/repos/mariadb-server-10.3/sql/item_func.cc:6842 buff = "\350T\005\360\032\177\000\000.ĎŠ\000\000\000\000\000h\214\a\001\000\000\000\000\210h\005\360\032\177\000\000\001\000\000\000\000\000\000\000\320U\005\360\032\177\000\000\350T\005\360\032\177\000\000\376Qu\000\000\000\000\000\000`\000\360\032\177\000\000\310#\001\360\032\177\000" key_buff = {<Sql_alloc> = {<No data fields>}, Ptr = 0x7f1b5c134e60 "\350T\005\360\032\177", str_length = 80, Alloced_length = 80, extra_alloc = 0, alloced = false, thread_specific = false, str_charset = 0x153caa0 <my_charset_bin>} length = 8 thd = <optimized out> key = <optimized out> entry = 0x7f1af004ec10 value = <optimized out> error = <optimized out> #2 0x00000000007e5729 in Item::save_int_in_field (this=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7002 nr = <optimized out> #3 Type_handler_int_result::Item_save_in_field (this=<optimized out>, item=0x7f1af0042658, field=0x0, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_type.cc:2596 No locals. #4 0x00000000008acf2e in Item::save_in_field (this=0x7f1af0058010, field=0x7f1af00554e8, no_conversions=false) at /home/dan/repos/mariadb-server-10.3/sql/item.cc:7012 error = <optimized out> #5 0x00000000007551fe in TABLE::update_default_fields (this=0x7f1af0056888, ignore_errors=false) at /home/dan/repos/mariadb-server-10.3/sql/table.cc:8226 field = 0x7f1af00554e8 res = 0 backup_arena = {_vptr$Query_arena = <optimized out>, free_list = 0x7f1af0060440, mem_root = 0x7f1af0006000, state = Query_arena::STMT_CONVENTIONAL_EXECUTION} field_ptr = 0x7f1af00555c8 #6 0x000000000064f460 in select_insert::send_data (this=0x7f1af0014368, values=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_insert.cc:3933 error = false #7 0x00000000006b027e in end_send (join=0x7f1af0014418, join_tab=0x7f1af0016eb0, end_of_records=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:21118 error = <optimized out> fields = 0x7f1af0005208 #8 0x00000000007b0e40 in JOIN_CACHE::generate_full_extensions (this=0x7f1af00606f8, rec_ptr=0x7f1af00642ce "\374\001a\001") at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2470 res = 0 rc = NESTED_LOOP_OK #9 0x00000000007b0cc7 in JOIN_CACHE::join_matching_records (this=0x7f1af00606f8, skip_last=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2362 rec_ptr = <optimized out> rc = <optimized out> check_only_first_match = <optimized out> outer_join_first_inner = false error = <optimized out> #10 0x00000000007b09be in JOIN_CACHE::join_records (this=0x7f1af00606f8, skip_last=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_join_cache.cc:2147 rc = NESTED_LOOP_OK outer_join_first_inner = false tab = <optimized out> #11 0x00000000006d4964 in sub_select_cache (join=0x7f1af0014418, join_tab=0x7f1af0016b20, end_of_records=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19712 cache = 0x7f1af00606f8 rc = <optimized out> #12 0x00000000006afea6 in do_select (join=0x7f1af0014418, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:19472 join_tab = 0x7f1af0016790 rc = 0 error = <optimized out> #13 0x00000000006af733 in JOIN::exec_inner (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4171 columns_list = 0x7f1af0005208 #14 0x00000000006ab87d in JOIN::exec (this=0x7f1af0014418) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:3965 No locals. #15 mysql_select (thd=0x7f1af0000c58, tables=<optimized out>, wild_num=<optimized out>, fields=<optimized out>, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:4374 err = <optimized out> free_join = true join = 0x7f1af0014418 #16 0x00000000006ab240 in handle_select (thd=0x7f1af0000c58, lex=0x7f1af0004888, result=0x7f1af0014368, setup_tables_done_option=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_select.cc:372 unit = <optimized out> select_lex = 0x7f1af00050e0 res = <optimized out> #17 0x000000000067edae in mysql_execute_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:4621 second_table = <optimized out> sel_result = 0x7f1af0014368 explain = <optimized out> res = <optimized out> up_result = 0 lex = 0x7f1af0004888 select_lex = <optimized out> first_table = 0x7f1af00118c0 unit = 0x7f1af0004948 have_table_map_for_update = <optimized out> all_tables = <optimized out> rpl_filter = <optimized out> orig_binlog_format = <optimized out> orig_current_stmt_binlog_format = <optimized out> error = <optimized out> wsrep_error_label = <optimized out> #18 0x0000000000679637 in mysql_parse (thd=0x7f1af0000c58, rawbuf=0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", length=123, parser_state=0x7f1b5c135680, is_com_multi=<optimized out>, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:7871 found_semicolon = <optimized out> error = <optimized out> lex = 0x7f1af0004888 err = false #19 0x0000000000676cda in dispatch_command (command=COM_QUERY, thd=0x7f1af0000c58, packet=0x7f1af0007399 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", packet_length=123, is_com_multi=false, is_next_command=false) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1852 parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f1af0000c58, m_ptr = 0x7f1af001179c "\004", m_tok_start = 0x7f1af001179c "\004", m_tok_end = 0x7f1af001179c "\004", m_end_of_query = 0x7f1af001179b "", m_tok_start_prev = 0x7f1af001179b "", m_buf = 0x7f1af0011720 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", m_buf_length = 123, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f1af00117f8 "INSERT INTO T2(T1_ID,NAME) SELECT t1.T1_ID , t2.NAME FROM TEMP_T2 AS t2 INNER JOIN T1 AS t1 ON t2.T1_NAME =t1.SHORT_NAME", m_cpp_ptr = 0x7f1af0011873 "", m_cpp_tok_start = 0x7f1af0011873 "", m_cpp_tok_start_prev = 0x7f1af0011873 "", m_cpp_tok_end = 0x7f1af0011873 "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f1af0011869 "SHORT_NAME", m_cpp_text_end = 0x7f1af0011873 "", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0} packet_end = <optimized out> net = <optimized out> error = false do_end_of_statement = true drop_more_results = false #20 0x0000000000684cd7 in do_command (thd=0x7f1af0000c58) at /home/dan/repos/mariadb-server-10.3/sql/sql_parse.cc:1398 packet = <optimized out> packet_length = <optimized out> net = <optimized out> command = COM_QUERY return_value = <optimized out> #21 0x00000000007855b2 in do_handle_one_connection (connect=<optimized out>) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1403 create_user = true thr_create_utime = <optimized out> thd = <optimized out> #22 0x0000000000785383 in handle_one_connection (arg=0x2a5d538) at /home/dan/repos/mariadb-server-10.3/sql/sql_connect.cc:1308 connect = 0x2a5d538 #23 0x00007f1b5d68ce2d in start_thread () from /lib64/libc.so.6 No symbol table info available. #24 0x00007f1b5d7121b0 in clone3 () from /lib64/libc.so.6 No symbol table info available. (gdb) p *this $2 = {<sequence_definition> = {<Sql_alloc> = {<No data fields>}, reserved_until = 1001, min_value = 1, max_value = 9223372036854775806, start = 1, increment = 1, cache = 1000, round = 0, restart = 0, cycle = false, used_fields = 63, real_increment = 1, next_free_value = 8}, all_values_used = false, initialized = SEQUENCE::SEQ_READY_TO_USE, mutex = {m_rwlock = {__data = {__readers = 1, __writers = 0, __wrphase_futex = 1, __writers_futex = 0, __pad3 = 0, __pad4 = 0, __cur_writer = 0, __shared = 0, __rwelision = 0 '\000', __pad1 = "\000\000\000\000\000\000", __pad2 = 0, __flags = 0}, __size = "\001\000\000\000\000\000\000\000\001", '\000' <repeats 46 times>, __align = 1}, m_psi = 0x0}} sql/sql_insert.cc:3933 , two lines after the first breakpoint, calls TABLE::update_default_fields updating the result a second time.
            danblack Daniel Black added a comment - monty for review: https://github.com/MariaDB/server/pull/2268

            Ok to push with 1 comment:

            • Please rename the name of the store_value newly added parameter to ignore_errors for clarity.

            Notes for posterity:

            • The patch introduces a change in behavior of the form:

            fill_record called via fill_recond_n_invoke_before_trigger used to always be invoked with ignore_errors set to true. With this change, that is no longer the case. I am unable to figure out a test case that showcases this. danblack if you manage to, it's best to add it into the test suite. Nonetheless this is not part of this patch.

            cvicentiu Vicențiu Ciorbaru added a comment - Ok to push with 1 comment: Please rename the name of the store_value newly added parameter to ignore_errors for clarity. Notes for posterity: The patch introduces a change in behavior of the form: fill_record called via fill_recond_n_invoke_before_trigger used to always be invoked with ignore_errors set to true. With this change, that is no longer the case. I am unable to figure out a test case that showcases this. danblack if you manage to, it's best to add it into the test suite. Nonetheless this is not part of this patch.
            danblack Daniel Black added a comment -

            Thanks.

            danblack Daniel Black added a comment - Thanks.
            danblack Daniel Black added a comment -

            Thanks for the bug report wchiquito. Will be out next releases.

            danblack Daniel Black added a comment - Thanks for the bug report wchiquito . Will be out next releases.

            People

              danblack Daniel Black
              wchiquito William Chiquito
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.