Skip to content

Commit 970d8a3

Browse files
committed
Update oidjoins regression test for 9.1 catalog schema additions.
1 parent a0b75a4 commit 970d8a3

File tree

4 files changed

+124
-7
lines changed

4 files changed

+124
-7
lines changed

src/test/regress/expected/oidjoins.out

+72
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,14 @@ WHERE ambuild != 0 AND
121121
------+---------
122122
(0 rows)
123123

124+
SELECT ctid, ambuildempty
125+
FROM pg_catalog.pg_am fk
126+
WHERE ambuildempty != 0 AND
127+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ambuildempty);
128+
ctid | ambuildempty
129+
------+--------------
130+
(0 rows)
131+
124132
SELECT ctid, ambulkdelete
125133
FROM pg_catalog.pg_am fk
126134
WHERE ambulkdelete != 0 AND
@@ -193,6 +201,14 @@ WHERE amopmethod != 0 AND
193201
------+------------
194202
(0 rows)
195203

204+
SELECT ctid, amopsortfamily
205+
FROM pg_catalog.pg_amop fk
206+
WHERE amopsortfamily != 0 AND
207+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opfamily pk WHERE pk.oid = fk.amopsortfamily);
208+
ctid | amopsortfamily
209+
------+----------------
210+
(0 rows)
211+
196212
SELECT ctid, amprocfamily
197213
FROM pg_catalog.pg_amproc fk
198214
WHERE amprocfamily != 0 AND
@@ -241,6 +257,14 @@ WHERE atttypid != 0 AND
241257
------+----------
242258
(0 rows)
243259

260+
SELECT ctid, attcollation
261+
FROM pg_catalog.pg_attribute fk
262+
WHERE attcollation != 0 AND
263+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.attcollation);
264+
ctid | attcollation
265+
------+--------------
266+
(0 rows)
267+
244268
SELECT ctid, castsource
245269
FROM pg_catalog.pg_cast fk
246270
WHERE castsource != 0 AND
@@ -321,6 +345,22 @@ WHERE reltoastidxid != 0 AND
321345
------+---------------
322346
(0 rows)
323347

348+
SELECT ctid, collnamespace
349+
FROM pg_catalog.pg_collation fk
350+
WHERE collnamespace != 0 AND
351+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.collnamespace);
352+
ctid | collnamespace
353+
------+---------------
354+
(0 rows)
355+
356+
SELECT ctid, collowner
357+
FROM pg_catalog.pg_collation fk
358+
WHERE collowner != 0 AND
359+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.collowner);
360+
ctid | collowner
361+
------+-----------
362+
(0 rows)
363+
324364
SELECT ctid, connamespace
325365
FROM pg_catalog.pg_constraint fk
326366
WHERE connamespace != 0 AND
@@ -409,6 +449,22 @@ WHERE classoid != 0 AND
409449
------+----------
410450
(0 rows)
411451

452+
SELECT ctid, extowner
453+
FROM pg_catalog.pg_extension fk
454+
WHERE extowner != 0 AND
455+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.extowner);
456+
ctid | extowner
457+
------+----------
458+
(0 rows)
459+
460+
SELECT ctid, extnamespace
461+
FROM pg_catalog.pg_extension fk
462+
WHERE extnamespace != 0 AND
463+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.extnamespace);
464+
ctid | extnamespace
465+
------+--------------
466+
(0 rows)
467+
412468
SELECT ctid, indexrelid
413469
FROM pg_catalog.pg_index fk
414470
WHERE indexrelid != 0 AND
@@ -641,6 +697,14 @@ WHERE prolang != 0 AND
641697
------+---------
642698
(0 rows)
643699

700+
SELECT ctid, provariadic
701+
FROM pg_catalog.pg_proc fk
702+
WHERE provariadic != 0 AND
703+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.provariadic);
704+
ctid | provariadic
705+
------+-------------
706+
(0 rows)
707+
644708
SELECT ctid, prorettype
645709
FROM pg_catalog.pg_proc fk
646710
WHERE prorettype != 0 AND
@@ -953,3 +1017,11 @@ WHERE typbasetype != 0 AND
9531017
------+-------------
9541018
(0 rows)
9551019

1020+
SELECT ctid, typcollation
1021+
FROM pg_catalog.pg_type fk
1022+
WHERE typcollation != 0 AND
1023+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.typcollation);
1024+
ctid | typcollation
1025+
------+--------------
1026+
(0 rows)
1027+

src/test/regress/sql/oidjoins.sql

+36
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ SELECT ctid, ambuild
6161
FROM pg_catalog.pg_am fk
6262
WHERE ambuild != 0 AND
6363
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ambuild);
64+
SELECT ctid, ambuildempty
65+
FROM pg_catalog.pg_am fk
66+
WHERE ambuildempty != 0 AND
67+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ambuildempty);
6468
SELECT ctid, ambulkdelete
6569
FROM pg_catalog.pg_am fk
6670
WHERE ambulkdelete != 0 AND
@@ -97,6 +101,10 @@ SELECT ctid, amopmethod
97101
FROM pg_catalog.pg_amop fk
98102
WHERE amopmethod != 0 AND
99103
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_am pk WHERE pk.oid = fk.amopmethod);
104+
SELECT ctid, amopsortfamily
105+
FROM pg_catalog.pg_amop fk
106+
WHERE amopsortfamily != 0 AND
107+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opfamily pk WHERE pk.oid = fk.amopsortfamily);
100108
SELECT ctid, amprocfamily
101109
FROM pg_catalog.pg_amproc fk
102110
WHERE amprocfamily != 0 AND
@@ -121,6 +129,10 @@ SELECT ctid, atttypid
121129
FROM pg_catalog.pg_attribute fk
122130
WHERE atttypid != 0 AND
123131
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.atttypid);
132+
SELECT ctid, attcollation
133+
FROM pg_catalog.pg_attribute fk
134+
WHERE attcollation != 0 AND
135+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.attcollation);
124136
SELECT ctid, castsource
125137
FROM pg_catalog.pg_cast fk
126138
WHERE castsource != 0 AND
@@ -161,6 +173,14 @@ SELECT ctid, reltoastidxid
161173
FROM pg_catalog.pg_class fk
162174
WHERE reltoastidxid != 0 AND
163175
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.reltoastidxid);
176+
SELECT ctid, collnamespace
177+
FROM pg_catalog.pg_collation fk
178+
WHERE collnamespace != 0 AND
179+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.collnamespace);
180+
SELECT ctid, collowner
181+
FROM pg_catalog.pg_collation fk
182+
WHERE collowner != 0 AND
183+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.collowner);
164184
SELECT ctid, connamespace
165185
FROM pg_catalog.pg_constraint fk
166186
WHERE connamespace != 0 AND
@@ -205,6 +225,14 @@ SELECT ctid, classoid
205225
FROM pg_catalog.pg_description fk
206226
WHERE classoid != 0 AND
207227
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.classoid);
228+
SELECT ctid, extowner
229+
FROM pg_catalog.pg_extension fk
230+
WHERE extowner != 0 AND
231+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.extowner);
232+
SELECT ctid, extnamespace
233+
FROM pg_catalog.pg_extension fk
234+
WHERE extnamespace != 0 AND
235+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.extnamespace);
208236
SELECT ctid, indexrelid
209237
FROM pg_catalog.pg_index fk
210238
WHERE indexrelid != 0 AND
@@ -321,6 +349,10 @@ SELECT ctid, prolang
321349
FROM pg_catalog.pg_proc fk
322350
WHERE prolang != 0 AND
323351
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_language pk WHERE pk.oid = fk.prolang);
352+
SELECT ctid, provariadic
353+
FROM pg_catalog.pg_proc fk
354+
WHERE provariadic != 0 AND
355+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.provariadic);
324356
SELECT ctid, prorettype
325357
FROM pg_catalog.pg_proc fk
326358
WHERE prorettype != 0 AND
@@ -477,3 +509,7 @@ SELECT ctid, typbasetype
477509
FROM pg_catalog.pg_type fk
478510
WHERE typbasetype != 0 AND
479511
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.typbasetype);
512+
SELECT ctid, typcollation
513+
FROM pg_catalog.pg_type fk
514+
WHERE typcollation != 0 AND
515+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.typcollation);

src/tools/findoidjoins/README

+13-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ anything but an empty database, such as template1; else it's likely to
99
be very slow.
1010

1111
Run on an empty database, it returns the system join relationships (shown
12-
below for 9.0devel). Note that unexpected matches may indicate bogus entries
12+
below for 9.1devel). Note that unexpected matches may indicate bogus entries
1313
in system tables --- don't accept a peculiar match without question.
1414
In particular, a field shown as joining to more than one target table is
15-
probably messed up. In 9.0devel, the *only* fields that should join to more
15+
probably messed up. In 9.1devel, the *only* fields that should join to more
1616
than one target are pg_description.objoid, pg_depend.objid,
1717
pg_depend.refobjid, pg_shdescription.objoid, pg_shdepend.objid, and
1818
pg_shdepend.refobjid. (Running make_oidjoins_check is an easy way to spot
@@ -31,7 +31,7 @@ revision in the patterns of cross-links between system tables.
3131
(Ideally we'd just regenerate the script as part of the regression
3232
tests themselves, but that seems too slow...)
3333

34-
NOTE: in 9.0devel, make_oidjoins_check produces two bogus join checks:
34+
NOTE: in 9.1devel, make_oidjoins_check produces two bogus join checks:
3535
Join pg_catalog.pg_class.relfilenode => pg_catalog.pg_class.oid
3636
Join pg_catalog.pg_database.datlastsysoid => pg_catalog.pg_database.oid
3737
These are artifacts and should not be added to the oidjoins regress test.
@@ -55,6 +55,7 @@ Join pg_catalog.pg_am.amendscan => pg_catalog.pg_proc.oid
5555
Join pg_catalog.pg_am.ammarkpos => pg_catalog.pg_proc.oid
5656
Join pg_catalog.pg_am.amrestrpos => pg_catalog.pg_proc.oid
5757
Join pg_catalog.pg_am.ambuild => pg_catalog.pg_proc.oid
58+
Join pg_catalog.pg_am.ambuildempty => pg_catalog.pg_proc.oid
5859
Join pg_catalog.pg_am.ambulkdelete => pg_catalog.pg_proc.oid
5960
Join pg_catalog.pg_am.amvacuumcleanup => pg_catalog.pg_proc.oid
6061
Join pg_catalog.pg_am.amcostestimate => pg_catalog.pg_proc.oid
@@ -64,12 +65,14 @@ Join pg_catalog.pg_amop.amoplefttype => pg_catalog.pg_type.oid
6465
Join pg_catalog.pg_amop.amoprighttype => pg_catalog.pg_type.oid
6566
Join pg_catalog.pg_amop.amopopr => pg_catalog.pg_operator.oid
6667
Join pg_catalog.pg_amop.amopmethod => pg_catalog.pg_am.oid
68+
Join pg_catalog.pg_amop.amopsortfamily => pg_catalog.pg_opfamily.oid
6769
Join pg_catalog.pg_amproc.amprocfamily => pg_catalog.pg_opfamily.oid
6870
Join pg_catalog.pg_amproc.amproclefttype => pg_catalog.pg_type.oid
6971
Join pg_catalog.pg_amproc.amprocrighttype => pg_catalog.pg_type.oid
7072
Join pg_catalog.pg_amproc.amproc => pg_catalog.pg_proc.oid
7173
Join pg_catalog.pg_attribute.attrelid => pg_catalog.pg_class.oid
7274
Join pg_catalog.pg_attribute.atttypid => pg_catalog.pg_type.oid
75+
Join pg_catalog.pg_attribute.attcollation => pg_catalog.pg_collation.oid
7376
Join pg_catalog.pg_cast.castsource => pg_catalog.pg_type.oid
7477
Join pg_catalog.pg_cast.casttarget => pg_catalog.pg_type.oid
7578
Join pg_catalog.pg_cast.castfunc => pg_catalog.pg_proc.oid
@@ -80,6 +83,8 @@ Join pg_catalog.pg_class.relam => pg_catalog.pg_am.oid
8083
Join pg_catalog.pg_class.reltablespace => pg_catalog.pg_tablespace.oid
8184
Join pg_catalog.pg_class.reltoastrelid => pg_catalog.pg_class.oid
8285
Join pg_catalog.pg_class.reltoastidxid => pg_catalog.pg_class.oid
86+
Join pg_catalog.pg_collation.collnamespace => pg_catalog.pg_namespace.oid
87+
Join pg_catalog.pg_collation.collowner => pg_catalog.pg_authid.oid
8388
Join pg_catalog.pg_constraint.connamespace => pg_catalog.pg_namespace.oid
8489
Join pg_catalog.pg_constraint.contypid => pg_catalog.pg_type.oid
8590
Join pg_catalog.pg_conversion.connamespace => pg_catalog.pg_namespace.oid
@@ -91,6 +96,8 @@ Join pg_catalog.pg_db_role_setting.setdatabase => pg_catalog.pg_database.oid
9196
Join pg_catalog.pg_depend.classid => pg_catalog.pg_class.oid
9297
Join pg_catalog.pg_depend.refclassid => pg_catalog.pg_class.oid
9398
Join pg_catalog.pg_description.classoid => pg_catalog.pg_class.oid
99+
Join pg_catalog.pg_extension.extowner => pg_catalog.pg_authid.oid
100+
Join pg_catalog.pg_extension.extnamespace => pg_catalog.pg_namespace.oid
94101
Join pg_catalog.pg_index.indexrelid => pg_catalog.pg_class.oid
95102
Join pg_catalog.pg_index.indrelid => pg_catalog.pg_class.oid
96103
Join pg_catalog.pg_language.lanowner => pg_catalog.pg_authid.oid
@@ -120,6 +127,7 @@ Join pg_catalog.pg_opfamily.opfowner => pg_catalog.pg_authid.oid
120127
Join pg_catalog.pg_proc.pronamespace => pg_catalog.pg_namespace.oid
121128
Join pg_catalog.pg_proc.proowner => pg_catalog.pg_authid.oid
122129
Join pg_catalog.pg_proc.prolang => pg_catalog.pg_language.oid
130+
Join pg_catalog.pg_proc.provariadic => pg_catalog.pg_type.oid
123131
Join pg_catalog.pg_proc.prorettype => pg_catalog.pg_type.oid
124132
Join pg_catalog.pg_rewrite.ev_class => pg_catalog.pg_class.oid
125133
Join pg_catalog.pg_shdepend.refclassid => pg_catalog.pg_class.oid
@@ -159,8 +167,9 @@ Join pg_catalog.pg_type.typmodin => pg_catalog.pg_proc.oid
159167
Join pg_catalog.pg_type.typmodout => pg_catalog.pg_proc.oid
160168
Join pg_catalog.pg_type.typanalyze => pg_catalog.pg_proc.oid
161169
Join pg_catalog.pg_type.typbasetype => pg_catalog.pg_type.oid
170+
Join pg_catalog.pg_type.typcollation => pg_catalog.pg_collation.oid
162171

163172
---------------------------------------------------------------------------
164173

165-
Bruce Momjian ([email protected].us)
174+
Bruce Momjian (bruce@momjian.us)
166175
Updated for 7.3 by Joe Conway ([email protected])

src/tools/findoidjoins/make_oidjoins_check

+3-3
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ $AWK -F'[ \.]' '\
5959
}
6060
{
6161
printf "\
62-
SELECT ctid, %s \n\
63-
FROM %s.%s fk \n\
64-
WHERE %s != 0 AND \n\
62+
SELECT ctid, %s\n\
63+
FROM %s.%s fk\n\
64+
WHERE %s != 0 AND\n\
6565
NOT EXISTS(SELECT 1 FROM %s.%s pk WHERE pk.oid = fk.%s);\n",
6666
$4, $2, $3, $4,
6767
$6, $7, $4;

0 commit comments

Comments
 (0)