8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 18:03:03 +01:00

Fix #7786 and SHOW output for text BLOBs domains

This commit is contained in:
Dimitry Sibiryakov 2023-10-06 11:34:12 +02:00 committed by Alexander Peshkov
parent cbb1e9ff7c
commit effb648813
3 changed files with 9 additions and 3 deletions

View File

@ -2681,7 +2681,10 @@ static void listRelationComputed(LegacyTables flag, SSHORT default_char_set_id)
if (!FLD.RDB$CHARACTER_SET_ID.NULL)
char_set_id = FLD.RDB$CHARACTER_SET_ID;
if (char_set_id != default_char_set_id)
ISQL_get_character_sets(char_set_id, collation, default_char_set_id, Get::BOTH, false, true, char_sets);
{
// Currently ALTER TABLE syntax doesn't allow collation here.
ISQL_get_character_sets(char_set_id, collation, default_char_set_id, Get::CHARSET_ONLY, false, true, char_sets);
}
if (char_sets[0])
isqlGlob.prints(char_sets);
// CVC: Someone deleted the code that checks intchar when handling collations

View File

@ -1507,7 +1507,10 @@ void ISQL_get_character_sets(SSHORT char_set_id, SSHORT collation,
// If they both are default - supress output completely
if (!charsetIsDefault || !collationIsDefault)
{
sprintf(string, " CHARACTER SET %s%s COLLATE %s", charSetName, notNullStr, collateName);
if (collationIsDefault) // Suppress collation only
sprintf(string, " CHARACTER SET %s%s", charSetName, notNullStr);
else
sprintf(string, " CHARACTER SET %s%s COLLATE %s", charSetName, notNullStr, collateName);
return;
}
break;

View File

@ -4076,7 +4076,7 @@ static processing_state show_domains(const SCHAR* domain_name)
if (((FLD.RDB$FIELD_TYPE == blr_text ||
FLD.RDB$FIELD_TYPE == blr_varying) && FLD.RDB$FIELD_SUB_TYPE != fb_text_subtype_binary) ||
FLD.RDB$FIELD_TYPE == blr_blob && FLD.RDB$FIELD_SUB_TYPE != isc_blob_text)
FLD.RDB$FIELD_TYPE == blr_blob && FLD.RDB$FIELD_SUB_TYPE == isc_blob_text)
{
show_charsets(char_set_id, collation);
}