• Alexander Barkov's avatar
    MDEV-27195 SIGSEGV in Table_scope_and_contents_source_st::vers_check_system_fields · a5ef74e7
    Alexander Barkov authored
    The old code erroneously used default_charset_info to compare field names.
    default_charset_info can point to any arbitrary collation,
    including ucs2*, utf16*, utf32*, including those that do not
    support strcasecmp().
    
    my_charset_utf8mb4_unicode_ci, which is used in this scenario:
    
    CREATE TABLE t1 ENGINE=InnoDB WITH SYSTEM VERSIONING AS SELECT 0;
    
    does not support strcasecmp().
    
    Fixing the code to use Lex_ident::streq(), which uses
    system_charset_info instead of default_charset_info.
    a5ef74e7
handler.cc 222 KB