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

Assertion `keynr==(~(uint)0) || cs == info->s->keyinfo[keynr].seg->charset' failed in ft_init_boolean_search when a FULLTEXT index starts with a JSON column and MATCH uses IN BOOLEAN MODE

    XMLWordPrintable

Details

    • Not for Release Notes
    • Q1/2027 Server Maintenance

    Description

      CREATE TABLE t (j JSON, c CHAR(1), FULLTEXT(j,c)) ENGINE=MyISAM;
      SELECT 1 FROM t WHERE MATCH(j,c) AGAINST ('a' IN BOOLEAN MODE);
      

      Leads to

      MDEV-38740 CS 13.2.0 49efccb222e2370690b4de0416817fa35f9da2ea (Debug, Clang 18.1.3-11) Build 15/10/2026

      mariadbd: /test/mtest/MDEV-38740/pr5263_dbg/storage/myisam/ft_boolean_search.c:584: FT_INFO *ft_init_boolean_search(MI_INFO *, uint, uchar *, uint, CHARSET_INFO *): Assertion `keynr==(~(uint)0) || cs == info->s->keyinfo[keynr].seg->charset' failed.
      

      cd

      MDEV-38740 CS 13.2.0 49efccb222e2370690b4de0416817fa35f9da2ea (Debug, Clang 18.1.3-11) Build 15/10/2026

      Core was generated by `/test/mtest/MDEV-38740/MD151026-mariadb-13.2.0-linux-x86_64-dbg/bin/mariadbd --'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 631763)]
      (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  0x00007cfdc164527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007cfdc16288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007cfdc162881b in __assert_fail_base (fmt=0x7cfdc17d1208 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x61d36986307f "keynr==(~(uint)0) || cs == info->s->keyinfo[keynr].seg->charset", file=file@entry=0x61d3698fc415 "/test/mtest/MDEV-38740/pr5263_dbg/storage/myisam/ft_boolean_search.c", line=line@entry=584, function=function@entry=0x61d3698fc45a "FT_INFO *ft_init_boolean_search(MI_INFO *, uint, uchar *, uint, CHARSET_INFO *)") at ./assert/assert.c:96
      #6  0x00007cfdc163b517 in __assert_fail (assertion=0x61d36986307f "keynr==(~(uint)0) || cs == info->s->keyinfo[keynr].seg->charset", file=0x61d3698fc415 "/test/mtest/MDEV-38740/pr5263_dbg/storage/myisam/ft_boolean_search.c", line=584, function=0x61d3698fc45a "FT_INFO *ft_init_boolean_search(MI_INFO *, uint, uchar *, uint, CHARSET_INFO *)") at ./assert/assert.c:105
      #7  0x000061d3693776b5 in ft_init_boolean_search (info=0x74fca80307a0, keynr=0, query=0x74fca8079890 "a", query_len=1, cs=0x61d36a3e30c8 <my_charset_utf8mb4_bin>)at /test/mtest/MDEV-38740/pr5263_dbg/storage/myisam/ft_boolean_search.c:584
      #8  0x000061d3693273cb in ft_init_search (flags=3, info=0x74fca80307a0, keynr=0, query=0x74fca8079890 "a", query_len=1, cs=0x61d36a3e30c8 <my_charset_utf8mb4_bin>, record=0x74fca802e6b0 "\377")at /test/mtest/MDEV-38740/pr5263_dbg/storage/myisam/ft_myisam.c:31
      #9  0x000061d369326dbc in ha_myisam::ft_init_ext (this=0x74fca802de30, flags=3, inx=0, key=0x74fca801b8a0)at /test/mtest/MDEV-38740/pr5263_dbg/storage/myisam/ha_myisam.h:88
      #10 0x000061d368a90d85 in Item_func_match::init_search (this=0x74fca801b780, thd=0x74fca8000d60, no_order=false)at /test/mtest/MDEV-38740/pr5263_dbg/sql/item_func.cc:6346
      #11 0x000061d3684905e5 in init_ftfuncs (thd=0x74fca8000d60, select_lex=0x74fca801a690, no_order=false)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_base.cc:10137
      #12 0x000061d3685d30f9 in JOIN::optimize_stage2 (this=0x74fca801c380)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_select.cc:3390
      #13 0x000061d3685d1396 in JOIN::optimize_inner (this=0x74fca801c380)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_select.cc:2805
      #14 0x000061d3685ceb3d in JOIN::optimize (this=0x74fca801c380)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_select.cc:2032
      #15 0x000061d3685c66a8 in mysql_select (thd=0x74fca8000d60, tables=0x74fca801ac90, fields=@0x74fca801a948: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x74fca801ac20, last = 0x74fca801ac20, elements = 1}, <No data fields>}, conds=0x74fca801b780, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2164525824, result=0x74fca801c350, unit=0x74fca80052f8, select_lex=0x74fca801a690)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_select.cc:5447
      #16 0x000061d3685c6235 in handle_select (thd=0x74fca8000d60, lex=0x74fca8005218, result=0x74fca801c350, setup_tables_done_option=0)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_select.cc:652
      #17 0x000061d36856210d in execute_sqlcom_select (thd=0x74fca8000d60, all_tables=0x74fca801ac90)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_parse.cc:6266
      #18 0x000061d368556c36 in mysql_execute_command (thd=0x74fca8000d60, is_called_from_prepared_stmt=false)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_parse.cc:4038
      #19 0x000061d36854ec24 in mysql_parse (thd=0x74fca8000d60, rawbuf=0x74fca801a5a0 "SELECT 1 FROM t WHERE MATCH(j,c) AGAINST ('a' IN BOOLEAN MODE)", length=62, parser_state=0x7cfd9b88fa80)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_parse.cc:8005
      #20 0x000061d36854bfed in dispatch_command (command=COM_QUERY, thd=0x74fca8000d60, packet=0x74fca800b7d1 "SELECT 1 FROM t WHERE MATCH(j,c) AGAINST ('a' IN BOOLEAN MODE)", packet_length=62, blocking=true)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_parse.cc:1903
      #21 0x000061d36854f7d3 in do_command (thd=0x74fca8000d60, blocking=true)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_parse.cc:1437
      #22 0x000061d36875b099 in do_handle_one_connection (connect=0x61d378ed02c0, put_in_cache=true)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_connect.cc:1514
      #23 0x000061d36875ae3e in handle_one_connection (arg=0x61d378e587c0)at /test/mtest/MDEV-38740/pr5263_dbg/sql/sql_connect.cc:1426
      #24 0x00007cfdc169cb84 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #25 0x00007cfdc1729ecc in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Attachments

        Issue Links

          Activity

            People

              danblack Daniel Black
              ramesh Ramesh Sivaraman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 0d
                  0d
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 0.5h
                  0.5h

                  Git Integration

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