diff --git a/src/test/regress/expected/oidjoins.out b/src/test/regress/expected/oidjoins.out index 92f9143d06f..4731dacfbf4 100644 --- a/src/test/regress/expected/oidjoins.out +++ b/src/test/regress/expected/oidjoins.out @@ -1401,6 +1401,46 @@ WHERE conexclop != 0 AND ------+----------- (0 rows) +SELECT ctid, indcollation +FROM (SELECT ctid, unnest(indcollation) AS indcollation FROM pg_catalog.pg_index) fk +WHERE indcollation != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.indcollation); + ctid | indcollation +------+-------------- +(0 rows) + +SELECT ctid, indclass +FROM (SELECT ctid, unnest(indclass) AS indclass FROM pg_catalog.pg_index) fk +WHERE indclass != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.indclass); + ctid | indclass +------+---------- +(0 rows) + +SELECT ctid, partclass +FROM (SELECT ctid, unnest(partclass) AS partclass FROM pg_catalog.pg_partitioned_table) fk +WHERE partclass != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.partclass); + ctid | partclass +------+----------- +(0 rows) + +SELECT ctid, partcollation +FROM (SELECT ctid, unnest(partcollation) AS partcollation FROM pg_catalog.pg_partitioned_table) fk +WHERE partcollation != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.partcollation); + ctid | partcollation +------+--------------- +(0 rows) + +SELECT ctid, proargtypes +FROM (SELECT ctid, unnest(proargtypes) AS proargtypes FROM pg_catalog.pg_proc) fk +WHERE proargtypes != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.proargtypes); + ctid | proargtypes +------+------------- +(0 rows) + SELECT ctid, proallargtypes FROM (SELECT ctid, unnest(proallargtypes) AS proallargtypes FROM pg_catalog.pg_proc) fk WHERE proallargtypes != 0 AND diff --git a/src/test/regress/sql/oidjoins.sql b/src/test/regress/sql/oidjoins.sql index 8a833a23fda..f6d2d3c68c3 100644 --- a/src/test/regress/sql/oidjoins.sql +++ b/src/test/regress/sql/oidjoins.sql @@ -701,6 +701,26 @@ SELECT ctid, conexclop FROM (SELECT ctid, unnest(conexclop) AS conexclop FROM pg_catalog.pg_constraint) fk WHERE conexclop != 0 AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.conexclop); +SELECT ctid, indcollation +FROM (SELECT ctid, unnest(indcollation) AS indcollation FROM pg_catalog.pg_index) fk +WHERE indcollation != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.indcollation); +SELECT ctid, indclass +FROM (SELECT ctid, unnest(indclass) AS indclass FROM pg_catalog.pg_index) fk +WHERE indclass != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.indclass); +SELECT ctid, partclass +FROM (SELECT ctid, unnest(partclass) AS partclass FROM pg_catalog.pg_partitioned_table) fk +WHERE partclass != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opclass pk WHERE pk.oid = fk.partclass); +SELECT ctid, partcollation +FROM (SELECT ctid, unnest(partcollation) AS partcollation FROM pg_catalog.pg_partitioned_table) fk +WHERE partcollation != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.partcollation); +SELECT ctid, proargtypes +FROM (SELECT ctid, unnest(proargtypes) AS proargtypes FROM pg_catalog.pg_proc) fk +WHERE proargtypes != 0 AND + NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.proargtypes); SELECT ctid, proallargtypes FROM (SELECT ctid, unnest(proallargtypes) AS proallargtypes FROM pg_catalog.pg_proc) fk WHERE proallargtypes != 0 AND diff --git a/src/tools/findoidjoins/README b/src/tools/findoidjoins/README index a177c10375b..d0097101fdb 100644 --- a/src/tools/findoidjoins/README +++ b/src/tools/findoidjoins/README @@ -235,6 +235,11 @@ Join pg_catalog.pg_constraint.conpfeqop []=> pg_catalog.pg_operator.oid Join pg_catalog.pg_constraint.conppeqop []=> pg_catalog.pg_operator.oid Join pg_catalog.pg_constraint.conffeqop []=> pg_catalog.pg_operator.oid Join pg_catalog.pg_constraint.conexclop []=> pg_catalog.pg_operator.oid +Join pg_catalog.pg_index.indcollation []=> pg_catalog.pg_collation.oid +Join pg_catalog.pg_index.indclass []=> pg_catalog.pg_opclass.oid +Join pg_catalog.pg_partitioned_table.partclass []=> pg_catalog.pg_opclass.oid +Join pg_catalog.pg_partitioned_table.partcollation []=> pg_catalog.pg_collation.oid +Join pg_catalog.pg_proc.proargtypes []=> pg_catalog.pg_type.oid Join pg_catalog.pg_proc.proallargtypes []=> pg_catalog.pg_type.oid --------------------------------------------------------------------------- diff --git a/src/tools/findoidjoins/findoidjoins.c b/src/tools/findoidjoins/findoidjoins.c index ade11a53a2c..5239332ea7e 100644 --- a/src/tools/findoidjoins/findoidjoins.c +++ b/src/tools/findoidjoins/findoidjoins.c @@ -59,7 +59,6 @@ main(int argc, char **argv) /* Get a list of system relations that have OIDs */ printfPQExpBuffer(&sql, - "SET search_path = public;" "SELECT c.relname, (SELECT nspname FROM " "pg_catalog.pg_namespace n WHERE n.oid = c.relnamespace) AS nspname " "FROM pg_catalog.pg_class c " @@ -170,6 +169,7 @@ main(int argc, char **argv) " AND c.relkind = " CppAsString2(RELKIND_RELATION) " AND a.attrelid = c.oid" " AND a.atttypid IN ('pg_catalog.oid[]'::regtype, " + " 'pg_catalog.oidvector'::regtype, " " 'pg_catalog.regclass[]'::regtype, " " 'pg_catalog.regoper[]'::regtype, " " 'pg_catalog.regoperator[]'::regtype, "