1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-05 00:28:52 +02:00

Remove dependency on pg_database.datlastsysoid.

This column has been removed in PostgreSQL 15. Rather than add a lot of special handling, it seems better just to update all versions to not depend on this column.

Add centralized functions to identify the type of database (i.e. system or user) by name and use FirstNormalObjectId when a name is not available.

The new query in the db module will still return the prior result for PostgreSQL <= 15, which will be stored in the manifest. This is important to preserve behavior when downgrading pgBackRest. There are no concerns here for PostgreSQL 15 since older versions of pgBackRest won't be able to restore backups for PostgreSQL 15 anyway.
This commit is contained in:
David Steele
2022-05-04 08:22:45 -04:00
committed by GitHub
parent 302e0c0921
commit 692fe496bd
14 changed files with 159 additions and 46 deletions

View File

@ -31,6 +31,21 @@ testRun(void)
TEST_RESULT_STR_Z(pgVersionToStr(93456), "9.34", "infoPgVersionToString 93456");
}
// *****************************************************************************************************************************
if (testBegin("pgDbIs*()"))
{
TEST_RESULT_BOOL(pgDbIsTemplate(STRDEF("template0")), true, "template0 is template");
TEST_RESULT_BOOL(pgDbIsTemplate(STRDEF("template1")), true, "template1 is template");
TEST_RESULT_BOOL(pgDbIsTemplate(STRDEF("postgres")), false, "postgres is not template");
TEST_RESULT_BOOL(pgDbIsSystem(STRDEF("postgres")), true, "postgres is system");
TEST_RESULT_BOOL(pgDbIsSystem(STRDEF("template0")), true, "template0 is system");
TEST_RESULT_BOOL(pgDbIsSystem(STRDEF("app")), false, "app is not system");
TEST_RESULT_BOOL(pgDbIsSystemId(16383), true, "16383 is system");
TEST_RESULT_BOOL(pgDbIsSystemId(16384), false, "16384 is not system");
}
// *****************************************************************************************************************************
if (testBegin("pgControlVersion()"))
{