-
Alexander Barkov authored
A cleanup for MDEV-27896 Wrong result upon `COLLATE latin1_bin CHARACTER SET latin1` on the table or the database level Changing the error messages in a statement like this: CREATE DATABASE db1 COLLATE utf8mb4_bin CHARACTER SET utf8mb4 CHARACTER SET latin1; from COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' to a more expected: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' In order to do this: - Adding a new type TYPE_CHARACTER_SET_COLLATE_EXACT into Lex_exact_charset_extended_collation_attrs_st - Removing m_had_charset_exact from its descendant class Lex_extended_charset_extended_collation_attrs_st Additional cleanup: - Changing methods in Lex_exact_charset_extended_collation_attrs_st set_charset(), set_charset_collate_default(), set_charset_collate_binary() to get Lex_exact_charset instead CHARSET_INFO as a parameter, to guarantee that the argument is only CHARACTER SET and does not have any COLLATE clauses yet. This change is not directly related to the error message change.
e9adc395