Skip to content

Commit 4165d5b

Browse files
committed
Update oidjoins regression test to match git HEAD.
This is mostly to add some sanity checking for the pg_range catalog.
1 parent 4f9e330 commit 4165d5b

File tree

3 files changed

+107
-3
lines changed

3 files changed

+107
-3
lines changed

src/test/regress/expected/oidjoins.out

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,14 @@ WHERE provariadic != 0 AND
769769
------+-------------
770770
(0 rows)
771771

772+
SELECT ctid, protransform
773+
FROM pg_catalog.pg_proc fk
774+
WHERE protransform != 0 AND
775+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.protransform);
776+
ctid | protransform
777+
------+--------------
778+
(0 rows)
779+
772780
SELECT ctid, prorettype
773781
FROM pg_catalog.pg_proc fk
774782
WHERE prorettype != 0 AND
@@ -777,6 +785,54 @@ WHERE prorettype != 0 AND
777785
------+------------
778786
(0 rows)
779787

788+
SELECT ctid, rngtypid
789+
FROM pg_catalog.pg_range fk
790+
WHERE rngtypid != 0 AND
791+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.rngtypid);
792+
ctid | rngtypid
793+
------+----------
794+
(0 rows)
795+
796+
SELECT ctid, rngsubtype
797+
FROM pg_catalog.pg_range fk
798+
WHERE rngsubtype != 0 AND
799+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.rngsubtype);
800+
ctid | rngsubtype
801+
------+------------
802+
(0 rows)
803+
804+
SELECT ctid, rngcollation
805+
FROM pg_catalog.pg_range fk
806+
WHERE rngcollation != 0 AND
807+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.rngcollation);
808+
ctid | rngcollation
809+
------+--------------
810+
(0 rows)
811+
812+
SELECT ctid, rngsubopc
813+
FROM pg_catalog.pg_range fk
814+
WHERE rngsubopc != 0 AND
815+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.rngsubopc);
816+
ctid | rngsubopc
817+
------+-----------
818+
(0 rows)
819+
820+
SELECT ctid, rngcanonical
821+
FROM pg_catalog.pg_range fk
822+
WHERE rngcanonical != 0 AND
823+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.rngcanonical);
824+
ctid | rngcanonical
825+
------+--------------
826+
(0 rows)
827+
828+
SELECT ctid, rngsubdiff
829+
FROM pg_catalog.pg_range fk
830+
WHERE rngsubdiff != 0 AND
831+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.rngsubdiff);
832+
ctid | rngsubdiff
833+
------+------------
834+
(0 rows)
835+
780836
SELECT ctid, ev_class
781837
FROM pg_catalog.pg_rewrite fk
782838
WHERE ev_class != 0 AND
@@ -1153,6 +1209,14 @@ WHERE conffeqop != 0 AND
11531209
------+-----------
11541210
(0 rows)
11551211

1212+
SELECT ctid, conexclop
1213+
FROM (SELECT ctid, unnest(conexclop) AS conexclop FROM pg_catalog.pg_constraint) fk
1214+
WHERE conexclop != 0 AND
1215+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.conexclop);
1216+
ctid | conexclop
1217+
------+-----------
1218+
(0 rows)
1219+
11561220
SELECT ctid, proallargtypes
11571221
FROM (SELECT ctid, unnest(proallargtypes) AS proallargtypes FROM pg_catalog.pg_proc) fk
11581222
WHERE proallargtypes != 0 AND

src/test/regress/sql/oidjoins.sql

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,10 +385,38 @@ SELECT ctid, provariadic
385385
FROM pg_catalog.pg_proc fk
386386
WHERE provariadic != 0 AND
387387
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.provariadic);
388+
SELECT ctid, protransform
389+
FROM pg_catalog.pg_proc fk
390+
WHERE protransform != 0 AND
391+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.protransform);
388392
SELECT ctid, prorettype
389393
FROM pg_catalog.pg_proc fk
390394
WHERE prorettype != 0 AND
391395
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.prorettype);
396+
SELECT ctid, rngtypid
397+
FROM pg_catalog.pg_range fk
398+
WHERE rngtypid != 0 AND
399+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.rngtypid);
400+
SELECT ctid, rngsubtype
401+
FROM pg_catalog.pg_range fk
402+
WHERE rngsubtype != 0 AND
403+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.rngsubtype);
404+
SELECT ctid, rngcollation
405+
FROM pg_catalog.pg_range fk
406+
WHERE rngcollation != 0 AND
407+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.rngcollation);
408+
SELECT ctid, rngsubopc
409+
FROM pg_catalog.pg_range fk
410+
WHERE rngsubopc != 0 AND
411+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.rngsubopc);
412+
SELECT ctid, rngcanonical
413+
FROM pg_catalog.pg_range fk
414+
WHERE rngcanonical != 0 AND
415+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.rngcanonical);
416+
SELECT ctid, rngsubdiff
417+
FROM pg_catalog.pg_range fk
418+
WHERE rngsubdiff != 0 AND
419+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.rngsubdiff);
392420
SELECT ctid, ev_class
393421
FROM pg_catalog.pg_rewrite fk
394422
WHERE ev_class != 0 AND
@@ -577,6 +605,10 @@ SELECT ctid, conffeqop
577605
FROM (SELECT ctid, unnest(conffeqop) AS conffeqop FROM pg_catalog.pg_constraint) fk
578606
WHERE conffeqop != 0 AND
579607
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.conffeqop);
608+
SELECT ctid, conexclop
609+
FROM (SELECT ctid, unnest(conexclop) AS conexclop FROM pg_catalog.pg_constraint) fk
610+
WHERE conexclop != 0 AND
611+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.conexclop);
580612
SELECT ctid, proallargtypes
581613
FROM (SELECT ctid, unnest(proallargtypes) AS proallargtypes FROM pg_catalog.pg_proc) fk
582614
WHERE proallargtypes != 0 AND

src/tools/findoidjoins/README

Lines changed: 11 additions & 3 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.1devel).
8+
catalog join relationships (shown below for 9.2devel as of 2011-11-14).
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.1devel, the *only* fields that should join to more than one target
19+
In 9.2devel, 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,7 +33,7 @@ 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.1devel, make_oidjoins_check produces two bogus join checks:
36+
NOTE: as of 9.2devel, 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
3939
These are artifacts and should not be added to the oidjoins regress test.
@@ -138,7 +138,14 @@ Join pg_catalog.pg_proc.pronamespace => pg_catalog.pg_namespace.oid
138138
Join pg_catalog.pg_proc.proowner => pg_catalog.pg_authid.oid
139139
Join pg_catalog.pg_proc.prolang => pg_catalog.pg_language.oid
140140
Join pg_catalog.pg_proc.provariadic => pg_catalog.pg_type.oid
141+
Join pg_catalog.pg_proc.protransform => pg_catalog.pg_proc.oid
141142
Join pg_catalog.pg_proc.prorettype => pg_catalog.pg_type.oid
143+
Join pg_catalog.pg_range.rngtypid => pg_catalog.pg_type.oid
144+
Join pg_catalog.pg_range.rngsubtype => pg_catalog.pg_type.oid
145+
Join pg_catalog.pg_range.rngcollation => pg_catalog.pg_collation.oid
146+
Join pg_catalog.pg_range.rngsubopc => pg_catalog.pg_opclass.oid
147+
Join pg_catalog.pg_range.rngcanonical => pg_catalog.pg_proc.oid
148+
Join pg_catalog.pg_range.rngsubdiff => pg_catalog.pg_proc.oid
142149
Join pg_catalog.pg_rewrite.ev_class => pg_catalog.pg_class.oid
143150
Join pg_catalog.pg_shdepend.refclassid => pg_catalog.pg_class.oid
144151
Join pg_catalog.pg_shdescription.classoid => pg_catalog.pg_class.oid
@@ -186,6 +193,7 @@ Join pg_catalog.pg_type.typcollation => pg_catalog.pg_collation.oid
186193
Join pg_catalog.pg_constraint.conpfeqop []=> pg_catalog.pg_operator.oid
187194
Join pg_catalog.pg_constraint.conppeqop []=> pg_catalog.pg_operator.oid
188195
Join pg_catalog.pg_constraint.conffeqop []=> pg_catalog.pg_operator.oid
196+
Join pg_catalog.pg_constraint.conexclop []=> pg_catalog.pg_operator.oid
189197
Join pg_catalog.pg_proc.proallargtypes []=> pg_catalog.pg_type.oid
190198

191199
---------------------------------------------------------------------------

0 commit comments

Comments
 (0)