Skip to content

Commit e3f67a5

Browse files
committed
Update oidjoins regression test for v10.
1 parent b1ff33f commit e3f67a5

File tree

3 files changed

+136
-3
lines changed

3 files changed

+136
-3
lines changed

src/test/regress/expected/oidjoins.out

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,30 @@ WHERE attcollation != 0 AND
217217
------+--------------
218218
(0 rows)
219219

220+
SELECT ctid, roleid
221+
FROM pg_catalog.pg_auth_members fk
222+
WHERE roleid != 0 AND
223+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.roleid);
224+
ctid | roleid
225+
------+--------
226+
(0 rows)
227+
228+
SELECT ctid, member
229+
FROM pg_catalog.pg_auth_members fk
230+
WHERE member != 0 AND
231+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.member);
232+
ctid | member
233+
------+--------
234+
(0 rows)
235+
236+
SELECT ctid, grantor
237+
FROM pg_catalog.pg_auth_members fk
238+
WHERE grantor != 0 AND
239+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.grantor);
240+
ctid | grantor
241+
------+---------
242+
(0 rows)
243+
220244
SELECT ctid, castsource
221245
FROM pg_catalog.pg_cast fk
222246
WHERE castsource != 0 AND
@@ -721,6 +745,14 @@ WHERE opfowner != 0 AND
721745
------+----------
722746
(0 rows)
723747

748+
SELECT ctid, partrelid
749+
FROM pg_catalog.pg_partitioned_table fk
750+
WHERE partrelid != 0 AND
751+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.partrelid);
752+
ctid | partrelid
753+
------+-----------
754+
(0 rows)
755+
724756
SELECT ctid, polrelid
725757
FROM pg_catalog.pg_policy fk
726758
WHERE polrelid != 0 AND
@@ -833,6 +865,22 @@ WHERE ev_class != 0 AND
833865
------+----------
834866
(0 rows)
835867

868+
SELECT ctid, seqrelid
869+
FROM pg_catalog.pg_sequence fk
870+
WHERE seqrelid != 0 AND
871+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.seqrelid);
872+
ctid | seqrelid
873+
------+----------
874+
(0 rows)
875+
876+
SELECT ctid, seqtypid
877+
FROM pg_catalog.pg_sequence fk
878+
WHERE seqtypid != 0 AND
879+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.seqtypid);
880+
ctid | seqtypid
881+
------+----------
882+
(0 rows)
883+
836884
SELECT ctid, refclassid
837885
FROM pg_catalog.pg_shdepend fk
838886
WHERE refclassid != 0 AND
@@ -897,6 +945,30 @@ WHERE staop5 != 0 AND
897945
------+--------
898946
(0 rows)
899947

948+
SELECT ctid, stxrelid
949+
FROM pg_catalog.pg_statistic_ext fk
950+
WHERE stxrelid != 0 AND
951+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.stxrelid);
952+
ctid | stxrelid
953+
------+----------
954+
(0 rows)
955+
956+
SELECT ctid, stxnamespace
957+
FROM pg_catalog.pg_statistic_ext fk
958+
WHERE stxnamespace != 0 AND
959+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.stxnamespace);
960+
ctid | stxnamespace
961+
------+--------------
962+
(0 rows)
963+
964+
SELECT ctid, stxowner
965+
FROM pg_catalog.pg_statistic_ext fk
966+
WHERE stxowner != 0 AND
967+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.stxowner);
968+
ctid | stxowner
969+
------+----------
970+
(0 rows)
971+
900972
SELECT ctid, spcowner
901973
FROM pg_catalog.pg_tablespace fk
902974
WHERE spcowner != 0 AND

src/test/regress/sql/oidjoins.sql

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,18 @@ SELECT ctid, attcollation
109109
FROM pg_catalog.pg_attribute fk
110110
WHERE attcollation != 0 AND
111111
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.attcollation);
112+
SELECT ctid, roleid
113+
FROM pg_catalog.pg_auth_members fk
114+
WHERE roleid != 0 AND
115+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.roleid);
116+
SELECT ctid, member
117+
FROM pg_catalog.pg_auth_members fk
118+
WHERE member != 0 AND
119+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.member);
120+
SELECT ctid, grantor
121+
FROM pg_catalog.pg_auth_members fk
122+
WHERE grantor != 0 AND
123+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.grantor);
112124
SELECT ctid, castsource
113125
FROM pg_catalog.pg_cast fk
114126
WHERE castsource != 0 AND
@@ -361,6 +373,10 @@ SELECT ctid, opfowner
361373
FROM pg_catalog.pg_opfamily fk
362374
WHERE opfowner != 0 AND
363375
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.opfowner);
376+
SELECT ctid, partrelid
377+
FROM pg_catalog.pg_partitioned_table fk
378+
WHERE partrelid != 0 AND
379+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.partrelid);
364380
SELECT ctid, polrelid
365381
FROM pg_catalog.pg_policy fk
366382
WHERE polrelid != 0 AND
@@ -417,6 +433,14 @@ SELECT ctid, ev_class
417433
FROM pg_catalog.pg_rewrite fk
418434
WHERE ev_class != 0 AND
419435
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.ev_class);
436+
SELECT ctid, seqrelid
437+
FROM pg_catalog.pg_sequence fk
438+
WHERE seqrelid != 0 AND
439+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.seqrelid);
440+
SELECT ctid, seqtypid
441+
FROM pg_catalog.pg_sequence fk
442+
WHERE seqtypid != 0 AND
443+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.seqtypid);
420444
SELECT ctid, refclassid
421445
FROM pg_catalog.pg_shdepend fk
422446
WHERE refclassid != 0 AND
@@ -449,6 +473,18 @@ SELECT ctid, staop5
449473
FROM pg_catalog.pg_statistic fk
450474
WHERE staop5 != 0 AND
451475
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop5);
476+
SELECT ctid, stxrelid
477+
FROM pg_catalog.pg_statistic_ext fk
478+
WHERE stxrelid != 0 AND
479+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.stxrelid);
480+
SELECT ctid, stxnamespace
481+
FROM pg_catalog.pg_statistic_ext fk
482+
WHERE stxnamespace != 0 AND
483+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.stxnamespace);
484+
SELECT ctid, stxowner
485+
FROM pg_catalog.pg_statistic_ext fk
486+
WHERE stxowner != 0 AND
487+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.stxowner);
452488
SELECT ctid, spcowner
453489
FROM pg_catalog.pg_tablespace fk
454490
WHERE spcowner != 0 AND

src/tools/findoidjoins/README

Lines changed: 28 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.6devel as of 2016-01-16).
8+
catalog join relationships (shown below for 10devel as of 2017-05-15).
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.6, the *only* fields that should join to more than one target
19+
In v10, the *only* fields that should join to more than one target
2020
table are:
2121
pg_description.objoid, pg_depend.objid, pg_depend.refobjid,
2222
pg_shdescription.objoid, pg_shdepend.objid, pg_shdepend.refobjid,
@@ -35,13 +35,29 @@ regression test. The oidjoins test should be updated after any
3535
revision in the patterns of cross-links between system tables.
3636
(Typically we update it at the end of each development cycle.)
3737

38-
NOTE: as of 9.6, make_oidjoins_check produces two bogus join checks:
38+
NOTE: as of v10, make_oidjoins_check produces two bogus join checks:
3939
Join pg_catalog.pg_class.relfilenode => pg_catalog.pg_class.oid
4040
Join pg_catalog.pg_database.datlastsysoid => pg_catalog.pg_database.oid
4141
These are artifacts and should not be added to the oidjoins regression test.
4242
You might also get output for pg_shdepend.refobjid and pg_shdescription.objoid,
4343
neither of which should be added to the regression test.
4444

45+
In short, the procedure is:
46+
47+
1. make installcheck in src/test/regress
48+
2. cd here, make
49+
3. ./findoidjoins regression >foj.out
50+
4. ./make_oidjoins_check foj.out >oidjoins.sql
51+
5. paste foj.out below, removing the entries reported as duplicative
52+
by make_oidjoins_check or described as bogus above
53+
6. remove bogus tests in oidjoins.sql as per above
54+
7. copy oidjoins.sql to src/test/regress/sql/,
55+
and update oidjoins.out to match.
56+
8. Review diffs to ensure they correspond to new catalog relationships,
57+
then commit. (Sometimes, a pre-existing catalog relationship might
58+
become newly visible here as a result of the regression tests populating
59+
a catalog they didn't before. That's OK too.)
60+
4561
---------------------------------------------------------------------------
4662

4763
Join pg_catalog.pg_aggregate.aggfnoid => pg_catalog.pg_proc.oid
@@ -71,6 +87,9 @@ Join pg_catalog.pg_attrdef.adrelid => pg_catalog.pg_class.oid
7187
Join pg_catalog.pg_attribute.attrelid => pg_catalog.pg_class.oid
7288
Join pg_catalog.pg_attribute.atttypid => pg_catalog.pg_type.oid
7389
Join pg_catalog.pg_attribute.attcollation => pg_catalog.pg_collation.oid
90+
Join pg_catalog.pg_auth_members.roleid => pg_catalog.pg_authid.oid
91+
Join pg_catalog.pg_auth_members.member => pg_catalog.pg_authid.oid
92+
Join pg_catalog.pg_auth_members.grantor => pg_catalog.pg_authid.oid
7493
Join pg_catalog.pg_cast.castsource => pg_catalog.pg_type.oid
7594
Join pg_catalog.pg_cast.casttarget => pg_catalog.pg_type.oid
7695
Join pg_catalog.pg_cast.castfunc => pg_catalog.pg_proc.oid
@@ -134,6 +153,7 @@ Join pg_catalog.pg_operator.oprjoin => pg_catalog.pg_proc.oid
134153
Join pg_catalog.pg_opfamily.opfmethod => pg_catalog.pg_am.oid
135154
Join pg_catalog.pg_opfamily.opfnamespace => pg_catalog.pg_namespace.oid
136155
Join pg_catalog.pg_opfamily.opfowner => pg_catalog.pg_authid.oid
156+
Join pg_catalog.pg_partitioned_table.partrelid => pg_catalog.pg_class.oid
137157
Join pg_catalog.pg_policy.polrelid => pg_catalog.pg_class.oid
138158
Join pg_catalog.pg_proc.pronamespace => pg_catalog.pg_namespace.oid
139159
Join pg_catalog.pg_proc.proowner => pg_catalog.pg_authid.oid
@@ -148,6 +168,8 @@ Join pg_catalog.pg_range.rngsubopc => pg_catalog.pg_opclass.oid
148168
Join pg_catalog.pg_range.rngcanonical => pg_catalog.pg_proc.oid
149169
Join pg_catalog.pg_range.rngsubdiff => pg_catalog.pg_proc.oid
150170
Join pg_catalog.pg_rewrite.ev_class => pg_catalog.pg_class.oid
171+
Join pg_catalog.pg_sequence.seqrelid => pg_catalog.pg_class.oid
172+
Join pg_catalog.pg_sequence.seqtypid => pg_catalog.pg_type.oid
151173
Join pg_catalog.pg_shdepend.refclassid => pg_catalog.pg_class.oid
152174
Join pg_catalog.pg_shdescription.classoid => pg_catalog.pg_class.oid
153175
Join pg_catalog.pg_statistic.starelid => pg_catalog.pg_class.oid
@@ -156,6 +178,9 @@ Join pg_catalog.pg_statistic.staop2 => pg_catalog.pg_operator.oid
156178
Join pg_catalog.pg_statistic.staop3 => pg_catalog.pg_operator.oid
157179
Join pg_catalog.pg_statistic.staop4 => pg_catalog.pg_operator.oid
158180
Join pg_catalog.pg_statistic.staop5 => pg_catalog.pg_operator.oid
181+
Join pg_catalog.pg_statistic_ext.stxrelid => pg_catalog.pg_class.oid
182+
Join pg_catalog.pg_statistic_ext.stxnamespace => pg_catalog.pg_namespace.oid
183+
Join pg_catalog.pg_statistic_ext.stxowner => pg_catalog.pg_authid.oid
159184
Join pg_catalog.pg_tablespace.spcowner => pg_catalog.pg_authid.oid
160185
Join pg_catalog.pg_transform.trftype => pg_catalog.pg_type.oid
161186
Join pg_catalog.pg_transform.trflang => pg_catalog.pg_language.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