Since the behavior of the UNICODE collation can change with new
ICU/Unicode versions, we need to apply the versioning mechanism to it.
We do this with an UPDATE command in initdb; this is similar to how we
put the collation version into pg_database already.
Reported-by: Daniel Verite <daniel@manitou-mail.org>
Discussion: https://www.postgresql.org/message-id/
49417853-7bdd-4b23-a4e9-
04c7aff33821@manitou-mail.org
static void
setup_collation(FILE *cmdfd)
{
+ /*
+ * Set the collation version for collations defined in pg_collation.dat,
+ * but not the ones where we know that the collation behavior will never
+ * change.
+ */
+ PG_CMD_PUTS("UPDATE pg_collation SET collversion = pg_collation_actual_version(oid) WHERE collname = 'unicode';\n\n");
+
/* Import all collations we can find in the operating system */
PG_CMD_PUTS("SELECT pg_import_system_collations('pg_catalog');\n\n");
}
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 202305041
+#define CATALOG_VERSION_NO 202305121
#endif