mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Catalog changes preparing for builtin collation provider.
Rename pg_collation.colliculocale to colllocale, and pg_database.daticulocale to datlocale. These names reflects that the fields will be useful for the upcoming builtin provider as well, not just for ICU. This is purely a rename; no changes to the meaning of the fields. Discussion: https://postgr.es/m/ff4c2f2f9c8fc7ca27c1c24ae37ecaeaeaff6b53.camel%40j-davis.com Reviewed-by: Peter Eisentraut
This commit is contained in:
@@ -66,7 +66,7 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
DefElem *versionEl = NULL;
|
||||
char *collcollate;
|
||||
char *collctype;
|
||||
char *colliculocale;
|
||||
char *colllocale;
|
||||
char *collicurules;
|
||||
bool collisdeterministic;
|
||||
int collencoding;
|
||||
@@ -157,11 +157,11 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
else
|
||||
collctype = NULL;
|
||||
|
||||
datum = SysCacheGetAttr(COLLOID, tp, Anum_pg_collation_colliculocale, &isnull);
|
||||
datum = SysCacheGetAttr(COLLOID, tp, Anum_pg_collation_colllocale, &isnull);
|
||||
if (!isnull)
|
||||
colliculocale = TextDatumGetCString(datum);
|
||||
colllocale = TextDatumGetCString(datum);
|
||||
else
|
||||
colliculocale = NULL;
|
||||
colllocale = NULL;
|
||||
|
||||
/*
|
||||
* When the ICU locale comes from an existing collation, do not
|
||||
@@ -194,7 +194,7 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
|
||||
collcollate = NULL;
|
||||
collctype = NULL;
|
||||
colliculocale = NULL;
|
||||
colllocale = NULL;
|
||||
collicurules = NULL;
|
||||
|
||||
if (providerEl)
|
||||
@@ -234,7 +234,7 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
collctype = defGetString(localeEl);
|
||||
}
|
||||
else
|
||||
colliculocale = defGetString(localeEl);
|
||||
colllocale = defGetString(localeEl);
|
||||
}
|
||||
|
||||
if (lccollateEl)
|
||||
@@ -259,7 +259,7 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
}
|
||||
else if (collprovider == COLLPROVIDER_ICU)
|
||||
{
|
||||
if (!colliculocale)
|
||||
if (!colllocale)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
|
||||
errmsg("parameter \"%s\" must be specified",
|
||||
@@ -271,20 +271,20 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
*/
|
||||
if (!IsBinaryUpgrade)
|
||||
{
|
||||
char *langtag = icu_language_tag(colliculocale,
|
||||
char *langtag = icu_language_tag(colllocale,
|
||||
icu_validation_level);
|
||||
|
||||
if (langtag && strcmp(colliculocale, langtag) != 0)
|
||||
if (langtag && strcmp(colllocale, langtag) != 0)
|
||||
{
|
||||
ereport(NOTICE,
|
||||
(errmsg("using standard form \"%s\" for ICU locale \"%s\"",
|
||||
langtag, colliculocale)));
|
||||
langtag, colllocale)));
|
||||
|
||||
colliculocale = langtag;
|
||||
colllocale = langtag;
|
||||
}
|
||||
}
|
||||
|
||||
icu_validate_locale(colliculocale);
|
||||
icu_validate_locale(colllocale);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -332,7 +332,7 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
}
|
||||
|
||||
if (!collversion)
|
||||
collversion = get_collation_actual_version(collprovider, collprovider == COLLPROVIDER_ICU ? colliculocale : collcollate);
|
||||
collversion = get_collation_actual_version(collprovider, collprovider == COLLPROVIDER_ICU ? colllocale : collcollate);
|
||||
|
||||
newoid = CollationCreate(collName,
|
||||
collNamespace,
|
||||
@@ -342,7 +342,7 @@ DefineCollation(ParseState *pstate, List *names, List *parameters, bool if_not_e
|
||||
collencoding,
|
||||
collcollate,
|
||||
collctype,
|
||||
colliculocale,
|
||||
colllocale,
|
||||
collicurules,
|
||||
collversion,
|
||||
if_not_exists,
|
||||
@@ -433,7 +433,7 @@ AlterCollation(AlterCollationStmt *stmt)
|
||||
datum = SysCacheGetAttr(COLLOID, tup, Anum_pg_collation_collversion, &isnull);
|
||||
oldversion = isnull ? NULL : TextDatumGetCString(datum);
|
||||
|
||||
datum = SysCacheGetAttrNotNull(COLLOID, tup, collForm->collprovider == COLLPROVIDER_ICU ? Anum_pg_collation_colliculocale : Anum_pg_collation_collcollate);
|
||||
datum = SysCacheGetAttrNotNull(COLLOID, tup, collForm->collprovider == COLLPROVIDER_ICU ? Anum_pg_collation_colllocale : Anum_pg_collation_collcollate);
|
||||
newversion = get_collation_actual_version(collForm->collprovider, TextDatumGetCString(datum));
|
||||
|
||||
/* cannot change from NULL to non-NULL or vice versa */
|
||||
@@ -500,7 +500,7 @@ pg_collation_actual_version(PG_FUNCTION_ARGS)
|
||||
|
||||
datum = SysCacheGetAttrNotNull(DATABASEOID, dbtup,
|
||||
provider == COLLPROVIDER_ICU ?
|
||||
Anum_pg_database_daticulocale : Anum_pg_database_datcollate);
|
||||
Anum_pg_database_datlocale : Anum_pg_database_datcollate);
|
||||
|
||||
locale = TextDatumGetCString(datum);
|
||||
|
||||
@@ -521,7 +521,7 @@ pg_collation_actual_version(PG_FUNCTION_ARGS)
|
||||
Assert(provider != COLLPROVIDER_DEFAULT);
|
||||
datum = SysCacheGetAttrNotNull(COLLOID, colltp,
|
||||
provider == COLLPROVIDER_ICU ?
|
||||
Anum_pg_collation_colliculocale : Anum_pg_collation_collcollate);
|
||||
Anum_pg_collation_colllocale : Anum_pg_collation_collcollate);
|
||||
|
||||
locale = TextDatumGetCString(datum);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user