From 13a57710dbafad26669833add0ae6ae60314f8dc Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 30 Jun 2017 11:24:00 -0400 Subject: [PATCH] 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. --- src/backend/utils/adt/pg_locale.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 0f5ec954c3a..eae9fcb0def 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))