From 63ae052367c350935c3cec3e3c53a1e34a317e96 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 22 Jun 2016 17:12:55 -0400 Subject: [PATCH] Update oidjoins regression test for 9.6. Looks like we had some more catalog drift recently. --- src/test/regress/expected/oidjoins.out | 32 ++++++++++++++++++++++++++ src/test/regress/sql/oidjoins.sql | 16 +++++++++++++ src/tools/findoidjoins/README | 14 +++++++---- 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/test/regress/expected/oidjoins.out b/src/test/regress/expected/oidjoins.out index f10e007f58..5fe630777f 100644 --- a/src/test/regress/expected/oidjoins.out +++ b/src/test/regress/expected/oidjoins.out @@ -25,6 +25,30 @@ WHERE aggfinalfn != 0 AND ------+------------ (0 rows) +SELECT ctid, aggcombinefn +FROM pg_catalog.pg_aggregate fk +WHERE aggcombinefn != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggcombinefn); + ctid | aggcombinefn +------+-------------- +(0 rows) + +SELECT ctid, aggserialfn +FROM pg_catalog.pg_aggregate fk +WHERE aggserialfn != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggserialfn); + ctid | aggserialfn +------+------------- +(0 rows) + +SELECT ctid, aggdeserialfn +FROM pg_catalog.pg_aggregate fk +WHERE aggdeserialfn != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggdeserialfn); + ctid | aggdeserialfn +------+--------------- +(0 rows) + SELECT ctid, aggmtransfn FROM pg_catalog.pg_aggregate fk WHERE aggmtransfn != 0 AND @@ -481,6 +505,14 @@ WHERE inhparent != 0 AND ------+----------- (0 rows) +SELECT ctid, classoid +FROM pg_catalog.pg_init_privs fk +WHERE classoid != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.classoid); + ctid | classoid +------+---------- +(0 rows) + SELECT ctid, lanowner FROM pg_catalog.pg_language fk WHERE lanowner != 0 AND diff --git a/src/test/regress/sql/oidjoins.sql b/src/test/regress/sql/oidjoins.sql index 9b7c47060b..ef749936eb 100644 --- a/src/test/regress/sql/oidjoins.sql +++ b/src/test/regress/sql/oidjoins.sql @@ -13,6 +13,18 @@ SELECT ctid, aggfinalfn FROM pg_catalog.pg_aggregate fk WHERE aggfinalfn != 0 AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggfinalfn); +SELECT ctid, aggcombinefn +FROM pg_catalog.pg_aggregate fk +WHERE aggcombinefn != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggcombinefn); +SELECT ctid, aggserialfn +FROM pg_catalog.pg_aggregate fk +WHERE aggserialfn != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggserialfn); +SELECT ctid, aggdeserialfn +FROM pg_catalog.pg_aggregate fk +WHERE aggdeserialfn != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggdeserialfn); SELECT ctid, aggmtransfn FROM pg_catalog.pg_aggregate fk WHERE aggmtransfn != 0 AND @@ -241,6 +253,10 @@ SELECT ctid, inhparent FROM pg_catalog.pg_inherits fk WHERE inhparent != 0 AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.inhparent); +SELECT ctid, classoid +FROM pg_catalog.pg_init_privs fk +WHERE classoid != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.classoid); SELECT ctid, lanowner FROM pg_catalog.pg_language fk WHERE lanowner != 0 AND diff --git a/src/tools/findoidjoins/README b/src/tools/findoidjoins/README index f7a88227ac..af8c99eb6a 100644 --- a/src/tools/findoidjoins/README +++ b/src/tools/findoidjoins/README @@ -16,9 +16,11 @@ catalogs in interesting ways. Note that unexpected matches may indicate bogus entries in system tables; don't accept a peculiar match without question. In particular, a field shown as joining to more than one target table is probably messed up. -In 9.6devel, the *only* fields that should join to more than one target -table are pg_description.objoid, pg_depend.objid, pg_depend.refobjid, -pg_shdescription.objoid, pg_shdepend.objid, and pg_shdepend.refobjid. +In 9.6, the *only* fields that should join to more than one target +table are: +pg_description.objoid, pg_depend.objid, pg_depend.refobjid, +pg_shdescription.objoid, pg_shdepend.objid, pg_shdepend.refobjid, +and pg_init_privs.objoid. (Running make_oidjoins_check is an easy way to spot fields joining to more than one table, BTW.) @@ -33,7 +35,7 @@ regression test. The oidjoins test should be updated after any revision in the patterns of cross-links between system tables. (Typically we update it at the end of each development cycle.) -NOTE: as of 9.6devel, make_oidjoins_check produces two bogus join checks: +NOTE: as of 9.6, make_oidjoins_check produces two bogus join checks: Join pg_catalog.pg_class.relfilenode => pg_catalog.pg_class.oid Join pg_catalog.pg_database.datlastsysoid => pg_catalog.pg_database.oid These are artifacts and should not be added to the oidjoins regression test. @@ -45,6 +47,9 @@ neither of which should be added to the regression test. Join pg_catalog.pg_aggregate.aggfnoid => pg_catalog.pg_proc.oid Join pg_catalog.pg_aggregate.aggtransfn => pg_catalog.pg_proc.oid Join pg_catalog.pg_aggregate.aggfinalfn => pg_catalog.pg_proc.oid +Join pg_catalog.pg_aggregate.aggcombinefn => pg_catalog.pg_proc.oid +Join pg_catalog.pg_aggregate.aggserialfn => pg_catalog.pg_proc.oid +Join pg_catalog.pg_aggregate.aggdeserialfn => pg_catalog.pg_proc.oid Join pg_catalog.pg_aggregate.aggmtransfn => pg_catalog.pg_proc.oid Join pg_catalog.pg_aggregate.aggminvtransfn => pg_catalog.pg_proc.oid Join pg_catalog.pg_aggregate.aggmfinalfn => pg_catalog.pg_proc.oid @@ -102,6 +107,7 @@ Join pg_catalog.pg_index.indexrelid => pg_catalog.pg_class.oid Join pg_catalog.pg_index.indrelid => pg_catalog.pg_class.oid Join pg_catalog.pg_inherits.inhrelid => pg_catalog.pg_class.oid Join pg_catalog.pg_inherits.inhparent => pg_catalog.pg_class.oid +Join pg_catalog.pg_init_privs.classoid => pg_catalog.pg_class.oid Join pg_catalog.pg_language.lanowner => pg_catalog.pg_authid.oid Join pg_catalog.pg_language.lanplcallfoid => pg_catalog.pg_proc.oid Join pg_catalog.pg_language.laninline => pg_catalog.pg_proc.oid -- 2.40.0