aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2023-03-09 08:09:40 +0100
committerPeter Eisentraut <peter@eisentraut.org>2023-03-09 08:09:40 +0100
commit544b452a5a598dd14d7a38d15a778932e58d18b0 (patch)
treebc858434d3f6eccca26ff0e1d08e7e55b04718be /src
parentb6dfee28f2b44e28b123b77a91fb05c47da63501 (diff)
downloadpostgresql-544b452a5a598dd14d7a38d15a778932e58d18b0.tar.gz
postgresql-544b452a5a598dd14d7a38d15a778932e58d18b0.zip
Disallow specifying ICU rules unless locale provider is ICU
Follow-up for 30a53b7929; this was not checked in all cases. Reported-by: Jeff Davis <pgsql@j-davis.com>
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/collationcmds.c5
-rw-r--r--src/backend/commands/dbcommands.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
index c51e3afdb4c..8949684afe1 100644
--- a/src/backend/commands/collationcmds.c
+++ b/src/backend/commands/collationcmds.c
@@ -271,6 +271,11 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("nondeterministic collations not supported with this provider")));
+ if (collicurules && collprovider != COLLPROVIDER_ICU)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
+ errmsg("ICU rules cannot be specified unless locale provider is ICU")));
+
if (collprovider == COLLPROVIDER_ICU)
{
#ifdef USE_ICU
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 7063a5a7ed5..4d5d5d68666 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -1066,6 +1066,11 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
errmsg("ICU locale cannot be specified unless locale provider is ICU")));
+
+ if (dbicurules)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
+ errmsg("ICU rules cannot be specified unless locale provider is ICU")));
}
/*