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