Skip to content

Commit cbb5e23

Browse files
committed
Update oidjoins regression test for 9.4.
Now that we're pretty much feature-frozen, it's time to update the checks on system catalog foreign-key references. (It looks like we missed doing this altogether for 9.3. Sigh.)
1 parent ef15831 commit cbb5e23

File tree

4 files changed

+97
-5
lines changed

4 files changed

+97
-5
lines changed

src/test/regress/expected/oidjoins.out

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,30 @@ WHERE aggfinalfn != 0 AND
2525
------+------------
2626
(0 rows)
2727

28+
SELECT ctid, aggmtransfn
29+
FROM pg_catalog.pg_aggregate fk
30+
WHERE aggmtransfn != 0 AND
31+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggmtransfn);
32+
ctid | aggmtransfn
33+
------+-------------
34+
(0 rows)
35+
36+
SELECT ctid, aggminvtransfn
37+
FROM pg_catalog.pg_aggregate fk
38+
WHERE aggminvtransfn != 0 AND
39+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggminvtransfn);
40+
ctid | aggminvtransfn
41+
------+----------------
42+
(0 rows)
43+
44+
SELECT ctid, aggmfinalfn
45+
FROM pg_catalog.pg_aggregate fk
46+
WHERE aggmfinalfn != 0 AND
47+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggmfinalfn);
48+
ctid | aggmfinalfn
49+
------+-------------
50+
(0 rows)
51+
2852
SELECT ctid, aggsortop
2953
FROM pg_catalog.pg_aggregate fk
3054
WHERE aggsortop != 0 AND
@@ -41,6 +65,14 @@ WHERE aggtranstype != 0 AND
4165
------+--------------
4266
(0 rows)
4367

68+
SELECT ctid, aggmtranstype
69+
FROM pg_catalog.pg_aggregate fk
70+
WHERE aggmtranstype != 0 AND
71+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.aggmtranstype);
72+
ctid | aggmtranstype
73+
------+---------------
74+
(0 rows)
75+
4476
SELECT ctid, amkeytype
4577
FROM pg_catalog.pg_am fk
4678
WHERE amkeytype != 0 AND
@@ -145,6 +177,14 @@ WHERE amvacuumcleanup != 0 AND
145177
------+-----------------
146178
(0 rows)
147179

180+
SELECT ctid, amcanreturn
181+
FROM pg_catalog.pg_am fk
182+
WHERE amcanreturn != 0 AND
183+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amcanreturn);
184+
ctid | amcanreturn
185+
------+-------------
186+
(0 rows)
187+
148188
SELECT ctid, amcostestimate
149189
FROM pg_catalog.pg_am fk
150190
WHERE amcostestimate != 0 AND
@@ -881,6 +921,22 @@ WHERE staop3 != 0 AND
881921
------+--------
882922
(0 rows)
883923

924+
SELECT ctid, staop4
925+
FROM pg_catalog.pg_statistic fk
926+
WHERE staop4 != 0 AND
927+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop4);
928+
ctid | staop4
929+
------+--------
930+
(0 rows)
931+
932+
SELECT ctid, staop5
933+
FROM pg_catalog.pg_statistic fk
934+
WHERE staop5 != 0 AND
935+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop5);
936+
ctid | staop5
937+
------+--------
938+
(0 rows)
939+
884940
SELECT ctid, spcowner
885941
FROM pg_catalog.pg_tablespace fk
886942
WHERE spcowner != 0 AND

src/test/regress/sql/oidjoins.sql

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,18 @@ SELECT ctid, aggfinalfn
1313
FROM pg_catalog.pg_aggregate fk
1414
WHERE aggfinalfn != 0 AND
1515
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggfinalfn);
16+
SELECT ctid, aggmtransfn
17+
FROM pg_catalog.pg_aggregate fk
18+
WHERE aggmtransfn != 0 AND
19+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggmtransfn);
20+
SELECT ctid, aggminvtransfn
21+
FROM pg_catalog.pg_aggregate fk
22+
WHERE aggminvtransfn != 0 AND
23+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggminvtransfn);
24+
SELECT ctid, aggmfinalfn
25+
FROM pg_catalog.pg_aggregate fk
26+
WHERE aggmfinalfn != 0 AND
27+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggmfinalfn);
1628
SELECT ctid, aggsortop
1729
FROM pg_catalog.pg_aggregate fk
1830
WHERE aggsortop != 0 AND
@@ -21,6 +33,10 @@ SELECT ctid, aggtranstype
2133
FROM pg_catalog.pg_aggregate fk
2234
WHERE aggtranstype != 0 AND
2335
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.aggtranstype);
36+
SELECT ctid, aggmtranstype
37+
FROM pg_catalog.pg_aggregate fk
38+
WHERE aggmtranstype != 0 AND
39+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.aggmtranstype);
2440
SELECT ctid, amkeytype
2541
FROM pg_catalog.pg_am fk
2642
WHERE amkeytype != 0 AND
@@ -73,6 +89,10 @@ SELECT ctid, amvacuumcleanup
7389
FROM pg_catalog.pg_am fk
7490
WHERE amvacuumcleanup != 0 AND
7591
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amvacuumcleanup);
92+
SELECT ctid, amcanreturn
93+
FROM pg_catalog.pg_am fk
94+
WHERE amcanreturn != 0 AND
95+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amcanreturn);
7696
SELECT ctid, amcostestimate
7797
FROM pg_catalog.pg_am fk
7898
WHERE amcostestimate != 0 AND
@@ -441,6 +461,14 @@ SELECT ctid, staop3
441461
FROM pg_catalog.pg_statistic fk
442462
WHERE staop3 != 0 AND
443463
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop3);
464+
SELECT ctid, staop4
465+
FROM pg_catalog.pg_statistic fk
466+
WHERE staop4 != 0 AND
467+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop4);
468+
SELECT ctid, staop5
469+
FROM pg_catalog.pg_statistic fk
470+
WHERE staop5 != 0 AND
471+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop5);
444472
SELECT ctid, spcowner
445473
FROM pg_catalog.pg_tablespace fk
446474
WHERE spcowner != 0 AND

src/tools/findoidjoins/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/findoidjoins

src/tools/findoidjoins/README

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ findoidjoins
55

66
This program scans a database and prints oid fields (also reg* fields)
77
and the tables they join to. It is normally used to check the system
8-
catalog join relationships (shown below for 9.2devel as of 2011-11-14).
8+
catalog join relationships (shown below for 9.4devel as of 2014-04-16).
99

1010
Historically this has been run against an empty database such as template1,
1111
but there's a problem with that approach: some of the catalogs are empty
@@ -16,7 +16,7 @@ catalogs in interesting ways.
1616
Note that unexpected matches may indicate bogus entries in system tables;
1717
don't accept a peculiar match without question. In particular, a field
1818
shown as joining to more than one target table is probably messed up.
19-
In 9.2devel, the *only* fields that should join to more than one target
19+
In 9.4devel, the *only* fields that should join to more than one target
2020
table are pg_description.objoid, pg_depend.objid, pg_depend.refobjid,
2121
pg_shdescription.objoid, pg_shdepend.objid, and pg_shdepend.refobjid.
2222
(Running make_oidjoins_check is an easy way to spot fields joining to more
@@ -33,20 +33,24 @@ regression test. The oidjoins test should be updated after any
3333
revision in the patterns of cross-links between system tables.
3434
(Typically we update it at the end of each development cycle.)
3535

36-
NOTE: as of 9.2devel, make_oidjoins_check produces two bogus join checks:
36+
NOTE: as of 9.4devel, make_oidjoins_check produces two bogus join checks:
3737
Join pg_catalog.pg_class.relfilenode => pg_catalog.pg_class.oid
3838
Join pg_catalog.pg_database.datlastsysoid => pg_catalog.pg_database.oid
39-
These are artifacts and should not be added to the oidjoins regress test.
39+
These are artifacts and should not be added to the oidjoins regression test.
4040
You might also get output for pg_shdepend.refobjid and pg_shdescription.objoid,
41-
neither of which should be added to the regress test.
41+
neither of which should be added to the regression test.
4242

4343
---------------------------------------------------------------------------
4444

4545
Join pg_catalog.pg_aggregate.aggfnoid => pg_catalog.pg_proc.oid
4646
Join pg_catalog.pg_aggregate.aggtransfn => pg_catalog.pg_proc.oid
4747
Join pg_catalog.pg_aggregate.aggfinalfn => pg_catalog.pg_proc.oid
48+
Join pg_catalog.pg_aggregate.aggmtransfn => pg_catalog.pg_proc.oid
49+
Join pg_catalog.pg_aggregate.aggminvtransfn => pg_catalog.pg_proc.oid
50+
Join pg_catalog.pg_aggregate.aggmfinalfn => pg_catalog.pg_proc.oid
4851
Join pg_catalog.pg_aggregate.aggsortop => pg_catalog.pg_operator.oid
4952
Join pg_catalog.pg_aggregate.aggtranstype => pg_catalog.pg_type.oid
53+
Join pg_catalog.pg_aggregate.aggmtranstype => pg_catalog.pg_type.oid
5054
Join pg_catalog.pg_am.amkeytype => pg_catalog.pg_type.oid
5155
Join pg_catalog.pg_am.aminsert => pg_catalog.pg_proc.oid
5256
Join pg_catalog.pg_am.ambeginscan => pg_catalog.pg_proc.oid
@@ -60,6 +64,7 @@ Join pg_catalog.pg_am.ambuild => pg_catalog.pg_proc.oid
6064
Join pg_catalog.pg_am.ambuildempty => pg_catalog.pg_proc.oid
6165
Join pg_catalog.pg_am.ambulkdelete => pg_catalog.pg_proc.oid
6266
Join pg_catalog.pg_am.amvacuumcleanup => pg_catalog.pg_proc.oid
67+
Join pg_catalog.pg_am.amcanreturn => pg_catalog.pg_proc.oid
6368
Join pg_catalog.pg_am.amcostestimate => pg_catalog.pg_proc.oid
6469
Join pg_catalog.pg_am.amoptions => pg_catalog.pg_proc.oid
6570
Join pg_catalog.pg_amop.amopfamily => pg_catalog.pg_opfamily.oid
@@ -152,6 +157,8 @@ Join pg_catalog.pg_statistic.starelid => pg_catalog.pg_class.oid
152157
Join pg_catalog.pg_statistic.staop1 => pg_catalog.pg_operator.oid
153158
Join pg_catalog.pg_statistic.staop2 => pg_catalog.pg_operator.oid
154159
Join pg_catalog.pg_statistic.staop3 => pg_catalog.pg_operator.oid
160+
Join pg_catalog.pg_statistic.staop4 => pg_catalog.pg_operator.oid
161+
Join pg_catalog.pg_statistic.staop5 => pg_catalog.pg_operator.oid
155162
Join pg_catalog.pg_tablespace.spcowner => pg_catalog.pg_authid.oid
156163
Join pg_catalog.pg_trigger.tgrelid => pg_catalog.pg_class.oid
157164
Join pg_catalog.pg_trigger.tgfoid => pg_catalog.pg_proc.oid

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy