• Alexander Barkov's avatar
    MDEV-32249 strings/ctype-ucs2.c:2336: my_vsnprintf_utf32: Assertion `(n % 4)... · 6400b199
    Alexander Barkov authored
    MDEV-32249 strings/ctype-ucs2.c:2336: my_vsnprintf_utf32: Assertion `(n % 4) == 0' failed in my_vsnprintf_utf32 on INSERT
    
    The crash inside my_vsnprintf_utf32() happened correctly,
    because the caller methods:
      Field_string::sql_rpl_type()
      Field_varstring::sql_rpl_type()
    mis-used the charset library and sent pure ASCII data to the
    virtual function snprintf() of a utf32 CHARSET_INFO.
    
    It was wrong to use Field::charset() in sql_rpl_type().
    We're printing the metadata (the data type) here, not the column data.
    The string contraining the data type of a CHAR/VARCHAR column
    is a pure ASCII string.
    
    Fixing to use res->charset() to print, like all virtual implementations
    of sql_type() do.
    
    Review was done by Andrei Elkin.
    Thanks to Andrei for proposing MTR test improvents.
    6400b199
rpl_row_utf32.result 2.31 KB