From: Peter Eisentraut Date: Fri, 30 Jun 2017 15:24:00 +0000 (-0400) Subject: Prohibit creating ICU collation with different ctype X-Git-Tag: REL_10_BETA2~50 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13a57710dbafad26669833add0ae6ae60314f8dc;p=postgresql Prohibit creating ICU collation with different ctype ICU does not support "collate" and "ctype" being different, so the collctype catalog column is ignored. But for catalog neatness, ensure that they are the same. --- diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 0f5ec954c3..eae9fcb0de 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -1354,6 +1354,11 @@ pg_newlocale_from_collation(Oid collid) UCollator *collator; UErrorCode status; + if (strcmp(collcollate, collctype) != 0) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("collations with different collate and ctype values are not supported by ICU"))); + status = U_ZERO_ERROR; collator = ucol_open(collcollate, &status); if (U_FAILURE(status))