aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/collationcmds.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
index 6db72d919cc..18e88d2653f 100644
--- a/src/backend/commands/collationcmds.c
+++ b/src/backend/commands/collationcmds.c
@@ -15,6 +15,7 @@
#include "postgres.h"
#include "access/heapam.h"
+#include "access/xact.h"
#include "catalog/dependency.h"
#include "catalog/indexing.h"
#include "catalog/namespace.h"
@@ -30,6 +31,7 @@
#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
+#include "utils/pg_locale.h"
#include "utils/syscache.h"
static void AlterCollationOwner_internal(Relation rel, Oid collationOid,
@@ -51,6 +53,7 @@ DefineCollation(List *names, List *parameters)
DefElem *lcctypeEl = NULL;
char *collcollate = NULL;
char *collctype = NULL;
+ Oid newoid;
collNamespace = QualifiedNameGetCreationNamespace(names, &collName);
@@ -130,12 +133,16 @@ DefineCollation(List *names, List *parameters)
check_encoding_locale_matches(GetDatabaseEncoding(), collcollate, collctype);
- CollationCreate(collName,
+ newoid = CollationCreate(collName,
collNamespace,
GetUserId(),
GetDatabaseEncoding(),
collcollate,
collctype);
+
+ /* check that the locales can be loaded */
+ CommandCounterIncrement();
+ pg_newlocale_from_collation(newoid);
}
/*