Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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

+56
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

+28
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

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/findoidjoins

src/tools/findoidjoins/README

+12-5
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)