mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-25462: Assertion `m_status == DA_ERROR || m_status == DA_OK ||
m_status == DA_OK_BULK' failed in Diagnostics_area::message from get_schema_tables_record Analysis: SET NAMES changes character set for character_set_client, character_set_connection, character_set_results to 'filename'. The .frm file of view has @xx sequences in the SELECT query, which give parsing error because 'filename' character set is not parser friendly. When we get parsing error (ER_PARSE_ERROR), we directly return true without setting error status. This is caught later in assertion. Fix: Disallow 'filename' character set in SET NAMES because it is not parser friendly.
This commit is contained in:
@ -921,7 +921,7 @@ mysqld_collation_get_by_name(const char *name,
|
||||
|
||||
static inline bool is_supported_parser_charset(CHARSET_INFO *cs)
|
||||
{
|
||||
return MY_TEST(cs->mbminlen == 1);
|
||||
return MY_TEST(cs->mbminlen == 1 && cs->number != 17 /* filename */);
|
||||
}
|
||||
|
||||
#ifdef MYSQL_SERVER
|
||||
|
Reference in New Issue
Block a user