Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit96d175e

Browse files
committed
Fix findoidjoins to recognize oidvector columns.
Somehow we'd never noticed this oversight, even though it meansthat such basic columns as pg_proc.proargtypes were not beingvalidated by the oidjoins test. Correct the query and updatethe test script with the newly-found dependencies.
1 parentebeb3de commit96d175e

File tree

4 files changed

+66
-1
lines changed

4 files changed

+66
-1
lines changed

‎src/test/regress/expected/oidjoins.out

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,6 +1401,46 @@ WHEREconexclop != 0 AND
14011401
------+-----------
14021402
(0 rows)
14031403

1404+
SELECTctid, indcollation
1405+
FROM(SELECT ctid, unnest(indcollation) AS indcollation FROM pg_catalog.pg_index) fk
1406+
WHEREindcollation != 0 AND
1407+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.indcollation);
1408+
ctid | indcollation
1409+
------+--------------
1410+
(0 rows)
1411+
1412+
SELECTctid, indclass
1413+
FROM(SELECT ctid, unnest(indclass) AS indclass FROM pg_catalog.pg_index) fk
1414+
WHEREindclass != 0 AND
1415+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.indclass);
1416+
ctid | indclass
1417+
------+----------
1418+
(0 rows)
1419+
1420+
SELECTctid, partclass
1421+
FROM(SELECT ctid, unnest(partclass) AS partclass FROM pg_catalog.pg_partitioned_table) fk
1422+
WHEREpartclass != 0 AND
1423+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.partclass);
1424+
ctid | partclass
1425+
------+-----------
1426+
(0 rows)
1427+
1428+
SELECTctid, partcollation
1429+
FROM(SELECT ctid, unnest(partcollation) AS partcollation FROM pg_catalog.pg_partitioned_table) fk
1430+
WHEREpartcollation != 0 AND
1431+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.partcollation);
1432+
ctid | partcollation
1433+
------+---------------
1434+
(0 rows)
1435+
1436+
SELECTctid, proargtypes
1437+
FROM(SELECT ctid, unnest(proargtypes) AS proargtypes FROM pg_catalog.pg_proc) fk
1438+
WHEREproargtypes != 0 AND
1439+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.proargtypes);
1440+
ctid | proargtypes
1441+
------+-------------
1442+
(0 rows)
1443+
14041444
SELECTctid, proallargtypes
14051445
FROM(SELECT ctid, unnest(proallargtypes) AS proallargtypes FROM pg_catalog.pg_proc) fk
14061446
WHEREproallargtypes != 0 AND

‎src/test/regress/sql/oidjoins.sql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,26 @@ SELECTctid, conexclop
701701
FROM(SELECT ctid, unnest(conexclop)AS conexclopFROMpg_catalog.pg_constraint) fk
702702
WHEREconexclop!=0AND
703703
NOT EXISTS(SELECT1FROMpg_catalog.pg_operator pkWHEREpk.oid=fk.conexclop);
704+
SELECTctid, indcollation
705+
FROM(SELECT ctid, unnest(indcollation)AS indcollationFROMpg_catalog.pg_index) fk
706+
WHEREindcollation!=0AND
707+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.indcollation);
708+
SELECTctid, indclass
709+
FROM(SELECT ctid, unnest(indclass)AS indclassFROMpg_catalog.pg_index) fk
710+
WHEREindclass!=0AND
711+
NOT EXISTS(SELECT1FROMpg_catalog.pg_opclass pkWHEREpk.oid=fk.indclass);
712+
SELECTctid, partclass
713+
FROM(SELECT ctid, unnest(partclass)AS partclassFROMpg_catalog.pg_partitioned_table) fk
714+
WHEREpartclass!=0AND
715+
NOT EXISTS(SELECT1FROMpg_catalog.pg_opclass pkWHEREpk.oid=fk.partclass);
716+
SELECTctid, partcollation
717+
FROM(SELECT ctid, unnest(partcollation)AS partcollationFROMpg_catalog.pg_partitioned_table) fk
718+
WHEREpartcollation!=0AND
719+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.partcollation);
720+
SELECTctid, proargtypes
721+
FROM(SELECT ctid, unnest(proargtypes)AS proargtypesFROMpg_catalog.pg_proc) fk
722+
WHEREproargtypes!=0AND
723+
NOT EXISTS(SELECT1FROMpg_catalog.pg_type pkWHEREpk.oid=fk.proargtypes);
704724
SELECTctid, proallargtypes
705725
FROM(SELECT ctid, unnest(proallargtypes)AS proallargtypesFROMpg_catalog.pg_proc) fk
706726
WHEREproallargtypes!=0AND

‎src/tools/findoidjoins/README

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,11 @@ Join pg_catalog.pg_constraint.conpfeqop []=> pg_catalog.pg_operator.oid
235235
Join pg_catalog.pg_constraint.conppeqop []=> pg_catalog.pg_operator.oid
236236
Join pg_catalog.pg_constraint.conffeqop []=> pg_catalog.pg_operator.oid
237237
Join pg_catalog.pg_constraint.conexclop []=> pg_catalog.pg_operator.oid
238+
Join pg_catalog.pg_index.indcollation []=> pg_catalog.pg_collation.oid
239+
Join pg_catalog.pg_index.indclass []=> pg_catalog.pg_opclass.oid
240+
Join pg_catalog.pg_partitioned_table.partclass []=> pg_catalog.pg_opclass.oid
241+
Join pg_catalog.pg_partitioned_table.partcollation []=> pg_catalog.pg_collation.oid
242+
Join pg_catalog.pg_proc.proargtypes []=> pg_catalog.pg_type.oid
238243
Join pg_catalog.pg_proc.proallargtypes []=> pg_catalog.pg_type.oid
239244

240245
---------------------------------------------------------------------------

‎src/tools/findoidjoins/findoidjoins.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ main(int argc, char **argv)
5959
/* Get a list of system relations that have OIDs */
6060

6161
printfPQExpBuffer(&sql,
62-
"SET search_path = public;"
6362
"SELECT c.relname, (SELECT nspname FROM "
6463
"pg_catalog.pg_namespace n WHERE n.oid = c.relnamespace) AS nspname "
6564
"FROM pg_catalog.pg_class c "
@@ -170,6 +169,7 @@ main(int argc, char **argv)
170169
" AND c.relkind = "CppAsString2(RELKIND_RELATION)
171170
" AND a.attrelid = c.oid"
172171
" AND a.atttypid IN ('pg_catalog.oid[]'::regtype, "
172+
" 'pg_catalog.oidvector'::regtype, "
173173
" 'pg_catalog.regclass[]'::regtype, "
174174
" 'pg_catalog.regoper[]'::regtype, "
175175
" 'pg_catalog.regoperator[]'::regtype, "

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp