diff --git a/src/isql/extract.epp b/src/isql/extract.epp index fa3c4edc89..85eb350bb8 100644 --- a/src/isql/extract.epp +++ b/src/isql/extract.epp @@ -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 diff --git a/src/isql/isql.epp b/src/isql/isql.epp index 9bde1bf8b4..c7f922d1a1 100644 --- a/src/isql/isql.epp +++ b/src/isql/isql.epp @@ -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; diff --git a/src/isql/show.epp b/src/isql/show.epp index 082dd7c61a..fa6081ee5c 100644 --- a/src/isql/show.epp +++ b/src/isql/show.epp @@ -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); }