mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Remove pg_collation.collversion.
This model couldn't be extended to cover the default collation, and didn't have any information about the affected database objects when the version changed. Remove, in preparation for a follow-up commit that will add a new mechanism. Author: Thomas Munro <thomas.munro@gmail.com> Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> Reviewed-by: Peter Eisentraut <peter.eisentraut@2ndquadrant.com> Discussion: https://postgr.es/m/CAEepm%3D0uEQCpfq_%2BLYFBdArCe4Ot98t1aR4eYiYTe%3DyavQygiQ%40mail.gmail.com
This commit is contained in:
@ -1513,8 +1513,6 @@ pg_newlocale_from_collation(Oid collid)
|
||||
const char *collctype pg_attribute_unused();
|
||||
struct pg_locale_struct result;
|
||||
pg_locale_t resultp;
|
||||
Datum collversion;
|
||||
bool isnull;
|
||||
|
||||
tp = SearchSysCache1(COLLOID, ObjectIdGetDatum(collid));
|
||||
if (!HeapTupleIsValid(tp))
|
||||
@ -1616,41 +1614,6 @@ pg_newlocale_from_collation(Oid collid)
|
||||
#endif /* not USE_ICU */
|
||||
}
|
||||
|
||||
collversion = SysCacheGetAttr(COLLOID, tp, Anum_pg_collation_collversion,
|
||||
&isnull);
|
||||
if (!isnull)
|
||||
{
|
||||
char *actual_versionstr;
|
||||
char *collversionstr;
|
||||
|
||||
actual_versionstr = get_collation_actual_version(collform->collprovider, collcollate);
|
||||
if (!actual_versionstr)
|
||||
{
|
||||
/*
|
||||
* This could happen when specifying a version in CREATE
|
||||
* COLLATION for a libc locale, or manually creating a mess in
|
||||
* the catalogs.
|
||||
*/
|
||||
ereport(ERROR,
|
||||
(errmsg("collation \"%s\" has no actual version, but a version was specified",
|
||||
NameStr(collform->collname))));
|
||||
}
|
||||
collversionstr = TextDatumGetCString(collversion);
|
||||
|
||||
if (strcmp(actual_versionstr, collversionstr) != 0)
|
||||
ereport(WARNING,
|
||||
(errmsg("collation \"%s\" has version mismatch",
|
||||
NameStr(collform->collname)),
|
||||
errdetail("The collation in the database was created using version %s, "
|
||||
"but the operating system provides version %s.",
|
||||
collversionstr, actual_versionstr),
|
||||
errhint("Rebuild all objects affected by this collation and run "
|
||||
"ALTER COLLATION %s REFRESH VERSION, "
|
||||
"or build PostgreSQL with the right library version.",
|
||||
quote_qualified_identifier(get_namespace_name(collform->collnamespace),
|
||||
NameStr(collform->collname)))));
|
||||
}
|
||||
|
||||
ReleaseSysCache(tp);
|
||||
|
||||
/* We'll keep the pg_locale_t structures in TopMemoryContext */
|
||||
|
Reference in New Issue
Block a user