2000-01-05 07:06:23 +01:00
|
|
|
--
|
2008-10-13 14:59:57 +02:00
|
|
|
-- This is created by pgsql/src/tools/findoidjoins/make_oidjoins_check
|
2000-01-05 07:06:23 +01:00
|
|
|
--
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, aggfnoid
|
|
|
|
FROM pg_catalog.pg_aggregate fk
|
|
|
|
WHERE aggfnoid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggfnoid);
|
2002-04-11 22:00:18 +02:00
|
|
|
ctid | aggfnoid
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, aggtransfn
|
|
|
|
FROM pg_catalog.pg_aggregate fk
|
|
|
|
WHERE aggtransfn != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggtransfn);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | aggtransfn
|
|
|
|
------+------------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, aggfinalfn
|
|
|
|
FROM pg_catalog.pg_aggregate fk
|
|
|
|
WHERE aggfinalfn != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aggfinalfn);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | aggfinalfn
|
|
|
|
------+------------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2005-04-12 06:26:34 +02:00
|
|
|
SELECT ctid, aggsortop
|
|
|
|
FROM pg_catalog.pg_aggregate fk
|
|
|
|
WHERE aggsortop != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.aggsortop);
|
|
|
|
ctid | aggsortop
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, aggtranstype
|
|
|
|
FROM pg_catalog.pg_aggregate fk
|
|
|
|
WHERE aggtranstype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.aggtranstype);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | aggtranstype
|
|
|
|
------+--------------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2008-10-13 14:59:57 +02:00
|
|
|
SELECT ctid, amkeytype
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amkeytype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.amkeytype);
|
|
|
|
ctid | amkeytype
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, aminsert
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE aminsert != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.aminsert);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | aminsert
|
|
|
|
------+----------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, ambeginscan
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE ambeginscan != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ambeginscan);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | ambeginscan
|
|
|
|
------+-------------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2005-04-12 06:26:34 +02:00
|
|
|
SELECT ctid, amgettuple
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amgettuple != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amgettuple);
|
|
|
|
ctid | amgettuple
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
2008-04-11 00:25:26 +02:00
|
|
|
SELECT ctid, amgetbitmap
|
2005-04-12 06:26:34 +02:00
|
|
|
FROM pg_catalog.pg_am fk
|
2008-04-11 00:25:26 +02:00
|
|
|
WHERE amgetbitmap != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amgetbitmap);
|
|
|
|
ctid | amgetbitmap
|
|
|
|
------+-------------
|
2005-04-12 06:26:34 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, amrescan
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amrescan != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amrescan);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | amrescan
|
|
|
|
------+----------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, amendscan
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amendscan != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amendscan);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | amendscan
|
|
|
|
------+-----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, ammarkpos
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE ammarkpos != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ammarkpos);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | ammarkpos
|
|
|
|
------+-----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, amrestrpos
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amrestrpos != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amrestrpos);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | amrestrpos
|
|
|
|
------+------------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, ambuild
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE ambuild != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ambuild);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | ambuild
|
|
|
|
------+---------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, ambulkdelete
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE ambulkdelete != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.ambulkdelete);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | ambulkdelete
|
|
|
|
------+--------------
|
Restructure index AM interface for index building and index tuple deletion,
per previous discussion on pghackers. Most of the duplicate code in
different AMs' ambuild routines has been moved out to a common routine
in index.c; this means that all index types now do the right things about
inserting recently-dead tuples, etc. (I also removed support for EXTEND
INDEX in the ambuild routines, since that's about to go away anyway, and
it cluttered the code a lot.) The retail indextuple deletion routines have
been replaced by a "bulk delete" routine in which the indexscan is inside
the access method. I haven't pushed this change as far as it should go yet,
but it should allow considerable simplification of the internal bookkeeping
for deletions. Also, add flag columns to pg_am to eliminate various
hardcoded tests on AM OIDs, and remove unused pg_am columns.
Fix rtree and gist index types to not attempt to store NULLs; before this,
gist usually crashed, while rtree managed not to crash but computed wacko
bounding boxes for NULL entries (which might have had something to do with
the performance problems we've heard about occasionally).
Add AtEOXact routines to hash, rtree, and gist, all of which have static
state that needs to be reset after an error. We discovered this need long
ago for btree, but missed the other guys.
Oh, one more thing: concurrent VACUUM is now the default.
2001-07-16 00:48:19 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2003-05-14 05:26:03 +02:00
|
|
|
SELECT ctid, amvacuumcleanup
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amvacuumcleanup != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amvacuumcleanup);
|
|
|
|
ctid | amvacuumcleanup
|
|
|
|
------+-----------------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, amcostestimate
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amcostestimate != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amcostestimate);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | amcostestimate
|
|
|
|
------+----------------
|
2000-01-23 00:51:20 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, amoptions
|
|
|
|
FROM pg_catalog.pg_am fk
|
|
|
|
WHERE amoptions != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amoptions);
|
|
|
|
ctid | amoptions
|
2001-08-10 20:57:42 +02:00
|
|
|
------+-----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, amopfamily
|
2003-11-12 22:15:59 +01:00
|
|
|
FROM pg_catalog.pg_amop fk
|
2006-12-23 01:43:13 +01:00
|
|
|
WHERE amopfamily != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opfamily pk WHERE pk.oid = fk.amopfamily);
|
|
|
|
ctid | amopfamily
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, amoplefttype
|
|
|
|
FROM pg_catalog.pg_amop fk
|
|
|
|
WHERE amoplefttype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.amoplefttype);
|
|
|
|
ctid | amoplefttype
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, amoprighttype
|
|
|
|
FROM pg_catalog.pg_amop fk
|
|
|
|
WHERE amoprighttype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.amoprighttype);
|
|
|
|
ctid | amoprighttype
|
|
|
|
------+---------------
|
2003-11-12 22:15:59 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, amopopr
|
|
|
|
FROM pg_catalog.pg_amop fk
|
|
|
|
WHERE amopopr != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.amopopr);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | amopopr
|
|
|
|
------+---------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, amopmethod
|
|
|
|
FROM pg_catalog.pg_amop fk
|
|
|
|
WHERE amopmethod != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_am pk WHERE pk.oid = fk.amopmethod);
|
|
|
|
ctid | amopmethod
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, amprocfamily
|
2002-09-05 21:58:14 +02:00
|
|
|
FROM pg_catalog.pg_amproc fk
|
2006-12-23 01:43:13 +01:00
|
|
|
WHERE amprocfamily != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opfamily pk WHERE pk.oid = fk.amprocfamily);
|
|
|
|
ctid | amprocfamily
|
|
|
|
------+--------------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, amproclefttype
|
2003-11-12 22:15:59 +01:00
|
|
|
FROM pg_catalog.pg_amproc fk
|
2006-12-23 01:43:13 +01:00
|
|
|
WHERE amproclefttype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.amproclefttype);
|
|
|
|
ctid | amproclefttype
|
|
|
|
------+----------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, amprocrighttype
|
|
|
|
FROM pg_catalog.pg_amproc fk
|
|
|
|
WHERE amprocrighttype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.amprocrighttype);
|
|
|
|
ctid | amprocrighttype
|
|
|
|
------+-----------------
|
2003-11-12 22:15:59 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, amproc
|
|
|
|
FROM pg_catalog.pg_amproc fk
|
|
|
|
WHERE amproc != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amproc);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | amproc
|
|
|
|
------+--------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, attrelid
|
|
|
|
FROM pg_catalog.pg_attribute fk
|
|
|
|
WHERE attrelid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.attrelid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | attrelid
|
|
|
|
------+----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, atttypid
|
|
|
|
FROM pg_catalog.pg_attribute fk
|
|
|
|
WHERE atttypid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.atttypid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | atttypid
|
|
|
|
------+----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, castsource
|
|
|
|
FROM pg_catalog.pg_cast fk
|
|
|
|
WHERE castsource != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.castsource);
|
|
|
|
ctid | castsource
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, casttarget
|
|
|
|
FROM pg_catalog.pg_cast fk
|
|
|
|
WHERE casttarget != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.casttarget);
|
|
|
|
ctid | casttarget
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, castfunc
|
|
|
|
FROM pg_catalog.pg_cast fk
|
|
|
|
WHERE castfunc != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.castfunc);
|
|
|
|
ctid | castfunc
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, relnamespace
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE relnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.relnamespace);
|
|
|
|
ctid | relnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, reltype
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE reltype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.reltype);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | reltype
|
|
|
|
------+---------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, relowner
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE relowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.relowner);
|
|
|
|
ctid | relowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, relam
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE relam != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_am pk WHERE pk.oid = fk.relam);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | relam
|
|
|
|
------+-------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2004-08-04 22:33:49 +02:00
|
|
|
SELECT ctid, reltablespace
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE reltablespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_tablespace pk WHERE pk.oid = fk.reltablespace);
|
|
|
|
ctid | reltablespace
|
|
|
|
------+---------------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, reltoastrelid
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE reltoastrelid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.reltoastrelid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | reltoastrelid
|
|
|
|
------+---------------
|
2000-07-17 05:05:41 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, reltoastidxid
|
|
|
|
FROM pg_catalog.pg_class fk
|
|
|
|
WHERE reltoastidxid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.reltoastidxid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | reltoastidxid
|
|
|
|
------+---------------
|
2000-07-17 05:05:41 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2003-05-14 05:26:03 +02:00
|
|
|
SELECT ctid, connamespace
|
|
|
|
FROM pg_catalog.pg_constraint fk
|
|
|
|
WHERE connamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.connamespace);
|
|
|
|
ctid | connamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, contypid
|
|
|
|
FROM pg_catalog.pg_constraint fk
|
|
|
|
WHERE contypid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.contypid);
|
|
|
|
ctid | contypid
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, connamespace
|
|
|
|
FROM pg_catalog.pg_conversion fk
|
|
|
|
WHERE connamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.connamespace);
|
|
|
|
ctid | connamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, conowner
|
|
|
|
FROM pg_catalog.pg_conversion fk
|
|
|
|
WHERE conowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.conowner);
|
|
|
|
ctid | conowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, conproc
|
|
|
|
FROM pg_catalog.pg_conversion fk
|
|
|
|
WHERE conproc != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.conproc);
|
|
|
|
ctid | conproc
|
|
|
|
------+---------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, datdba
|
|
|
|
FROM pg_catalog.pg_database fk
|
|
|
|
WHERE datdba != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.datdba);
|
|
|
|
ctid | datdba
|
|
|
|
------+--------
|
|
|
|
(0 rows)
|
|
|
|
|
2004-08-04 22:33:49 +02:00
|
|
|
SELECT ctid, dattablespace
|
|
|
|
FROM pg_catalog.pg_database fk
|
|
|
|
WHERE dattablespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_tablespace pk WHERE pk.oid = fk.dattablespace);
|
|
|
|
ctid | dattablespace
|
|
|
|
------+---------------
|
|
|
|
(0 rows)
|
|
|
|
|
2010-03-14 05:17:54 +01:00
|
|
|
SELECT ctid, setdatabase
|
|
|
|
FROM pg_catalog.pg_db_role_setting fk
|
|
|
|
WHERE setdatabase != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_database pk WHERE pk.oid = fk.setdatabase);
|
|
|
|
ctid | setdatabase
|
|
|
|
------+-------------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, classid
|
|
|
|
FROM pg_catalog.pg_depend fk
|
|
|
|
WHERE classid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.classid);
|
|
|
|
ctid | classid
|
|
|
|
------+---------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, refclassid
|
|
|
|
FROM pg_catalog.pg_depend fk
|
|
|
|
WHERE refclassid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.refclassid);
|
|
|
|
ctid | refclassid
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, classoid
|
|
|
|
FROM pg_catalog.pg_description fk
|
|
|
|
WHERE classoid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.classoid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | classoid
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, indexrelid
|
|
|
|
FROM pg_catalog.pg_index fk
|
|
|
|
WHERE indexrelid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.indexrelid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | indexrelid
|
|
|
|
------+------------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, indrelid
|
|
|
|
FROM pg_catalog.pg_index fk
|
|
|
|
WHERE indrelid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.indrelid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | indrelid
|
|
|
|
------+----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
Support arrays of composite types, including the rowtypes of regular tables
and views (but not system catalogs, nor sequences or toast tables). Get rid
of the hardwired convention that a type's array type is named exactly "_type",
instead using a new column pg_type.typarray to provide the linkage. (It still
will be named "_type", though, except in odd corner cases such as
maximum-length type names.)
Along the way, make tracking of owner and schema dependencies for types more
uniform: a type directly created by the user has these dependencies, while a
table rowtype or auto-generated array type does not have them, but depends on
its parent object instead.
David Fetter, Andrew Dunstan, Tom Lane
2007-05-11 19:57:14 +02:00
|
|
|
SELECT ctid, lanowner
|
|
|
|
FROM pg_catalog.pg_language fk
|
|
|
|
WHERE lanowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.lanowner);
|
|
|
|
ctid | lanowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2010-03-14 05:17:54 +01:00
|
|
|
SELECT ctid, lanplcallfoid
|
|
|
|
FROM pg_catalog.pg_language fk
|
|
|
|
WHERE lanplcallfoid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.lanplcallfoid);
|
|
|
|
ctid | lanplcallfoid
|
|
|
|
------+---------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, laninline
|
|
|
|
FROM pg_catalog.pg_language fk
|
|
|
|
WHERE laninline != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.laninline);
|
|
|
|
ctid | laninline
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, lanvalidator
|
|
|
|
FROM pg_catalog.pg_language fk
|
|
|
|
WHERE lanvalidator != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.lanvalidator);
|
|
|
|
ctid | lanvalidator
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, nspowner
|
|
|
|
FROM pg_catalog.pg_namespace fk
|
|
|
|
WHERE nspowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.nspowner);
|
|
|
|
ctid | nspowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, opcmethod
|
2002-09-05 21:58:14 +02:00
|
|
|
FROM pg_catalog.pg_opclass fk
|
2006-12-23 01:43:13 +01:00
|
|
|
WHERE opcmethod != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_am pk WHERE pk.oid = fk.opcmethod);
|
|
|
|
ctid | opcmethod
|
|
|
|
------+-----------
|
2001-08-21 18:36:06 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, opcnamespace
|
|
|
|
FROM pg_catalog.pg_opclass fk
|
|
|
|
WHERE opcnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.opcnamespace);
|
|
|
|
ctid | opcnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, opcowner
|
|
|
|
FROM pg_catalog.pg_opclass fk
|
|
|
|
WHERE opcowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.opcowner);
|
|
|
|
ctid | opcowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, opcfamily
|
|
|
|
FROM pg_catalog.pg_opclass fk
|
|
|
|
WHERE opcfamily != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opfamily pk WHERE pk.oid = fk.opcfamily);
|
|
|
|
ctid | opcfamily
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, opcintype
|
|
|
|
FROM pg_catalog.pg_opclass fk
|
|
|
|
WHERE opcintype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.opcintype);
|
2001-08-21 18:36:06 +02:00
|
|
|
ctid | opcintype
|
|
|
|
------+-----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, opckeytype
|
|
|
|
FROM pg_catalog.pg_opclass fk
|
|
|
|
WHERE opckeytype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.opckeytype);
|
|
|
|
ctid | opckeytype
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprnamespace
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.oprnamespace);
|
|
|
|
ctid | oprnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, oprowner
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.oprowner);
|
|
|
|
ctid | oprowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprleft
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprleft != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.oprleft);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprleft
|
|
|
|
------+---------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprright
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprright != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.oprright);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprright
|
|
|
|
------+----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprresult
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprresult != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.oprresult);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprresult
|
|
|
|
------+-----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprcom
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprcom != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.oprcom);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprcom
|
|
|
|
------+--------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprnegate
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprnegate != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.oprnegate);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprnegate
|
|
|
|
------+-----------
|
1999-03-26 09:02:52 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprcode
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprcode != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.oprcode);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprcode
|
|
|
|
------+---------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprrest
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprrest != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.oprrest);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprrest
|
|
|
|
------+---------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, oprjoin
|
|
|
|
FROM pg_catalog.pg_operator fk
|
|
|
|
WHERE oprjoin != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.oprjoin);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | oprjoin
|
|
|
|
------+---------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, opfmethod
|
|
|
|
FROM pg_catalog.pg_opfamily fk
|
|
|
|
WHERE opfmethod != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_am pk WHERE pk.oid = fk.opfmethod);
|
|
|
|
ctid | opfmethod
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, opfnamespace
|
|
|
|
FROM pg_catalog.pg_opfamily fk
|
|
|
|
WHERE opfnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.opfnamespace);
|
|
|
|
ctid | opfnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, opfowner
|
|
|
|
FROM pg_catalog.pg_opfamily fk
|
|
|
|
WHERE opfowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.opfowner);
|
|
|
|
ctid | opfowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, pronamespace
|
|
|
|
FROM pg_catalog.pg_proc fk
|
|
|
|
WHERE pronamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.pronamespace);
|
|
|
|
ctid | pronamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, proowner
|
|
|
|
FROM pg_catalog.pg_proc fk
|
|
|
|
WHERE proowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.proowner);
|
|
|
|
ctid | proowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, prolang
|
|
|
|
FROM pg_catalog.pg_proc fk
|
|
|
|
WHERE prolang != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_language pk WHERE pk.oid = fk.prolang);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | prolang
|
|
|
|
------+---------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, prorettype
|
|
|
|
FROM pg_catalog.pg_proc fk
|
|
|
|
WHERE prorettype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.prorettype);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | prorettype
|
|
|
|
------+------------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, ev_class
|
|
|
|
FROM pg_catalog.pg_rewrite fk
|
|
|
|
WHERE ev_class != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.ev_class);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | ev_class
|
|
|
|
------+----------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, refclassid
|
|
|
|
FROM pg_catalog.pg_shdepend fk
|
|
|
|
WHERE refclassid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.refclassid);
|
|
|
|
ctid | refclassid
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, classoid
|
|
|
|
FROM pg_catalog.pg_shdescription fk
|
|
|
|
WHERE classoid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.classoid);
|
|
|
|
ctid | classoid
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, starelid
|
|
|
|
FROM pg_catalog.pg_statistic fk
|
|
|
|
WHERE starelid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.starelid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | starelid
|
|
|
|
------+----------
|
2000-01-23 00:51:20 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, staop1
|
|
|
|
FROM pg_catalog.pg_statistic fk
|
|
|
|
WHERE staop1 != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop1);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | staop1
|
|
|
|
------+--------
|
2001-05-07 02:43:27 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, staop2
|
|
|
|
FROM pg_catalog.pg_statistic fk
|
|
|
|
WHERE staop2 != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop2);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | staop2
|
|
|
|
------+--------
|
2001-05-07 02:43:27 +02:00
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, staop3
|
|
|
|
FROM pg_catalog.pg_statistic fk
|
|
|
|
WHERE staop3 != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop3);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | staop3
|
|
|
|
------+--------
|
2000-01-23 00:51:20 +01:00
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, spcowner
|
|
|
|
FROM pg_catalog.pg_tablespace fk
|
|
|
|
WHERE spcowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.spcowner);
|
|
|
|
ctid | spcowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2007-08-21 03:11:32 +02:00
|
|
|
SELECT ctid, cfgnamespace
|
|
|
|
FROM pg_catalog.pg_ts_config fk
|
|
|
|
WHERE cfgnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.cfgnamespace);
|
|
|
|
ctid | cfgnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, cfgowner
|
|
|
|
FROM pg_catalog.pg_ts_config fk
|
|
|
|
WHERE cfgowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.cfgowner);
|
|
|
|
ctid | cfgowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, cfgparser
|
|
|
|
FROM pg_catalog.pg_ts_config fk
|
|
|
|
WHERE cfgparser != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_ts_parser pk WHERE pk.oid = fk.cfgparser);
|
|
|
|
ctid | cfgparser
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, mapcfg
|
|
|
|
FROM pg_catalog.pg_ts_config_map fk
|
|
|
|
WHERE mapcfg != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_ts_config pk WHERE pk.oid = fk.mapcfg);
|
|
|
|
ctid | mapcfg
|
|
|
|
------+--------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, mapdict
|
|
|
|
FROM pg_catalog.pg_ts_config_map fk
|
|
|
|
WHERE mapdict != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_ts_dict pk WHERE pk.oid = fk.mapdict);
|
|
|
|
ctid | mapdict
|
|
|
|
------+---------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, dictnamespace
|
|
|
|
FROM pg_catalog.pg_ts_dict fk
|
|
|
|
WHERE dictnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.dictnamespace);
|
|
|
|
ctid | dictnamespace
|
|
|
|
------+---------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, dictowner
|
|
|
|
FROM pg_catalog.pg_ts_dict fk
|
|
|
|
WHERE dictowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.dictowner);
|
|
|
|
ctid | dictowner
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, dicttemplate
|
|
|
|
FROM pg_catalog.pg_ts_dict fk
|
|
|
|
WHERE dicttemplate != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_ts_template pk WHERE pk.oid = fk.dicttemplate);
|
|
|
|
ctid | dicttemplate
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, prsnamespace
|
|
|
|
FROM pg_catalog.pg_ts_parser fk
|
|
|
|
WHERE prsnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.prsnamespace);
|
|
|
|
ctid | prsnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, prsstart
|
|
|
|
FROM pg_catalog.pg_ts_parser fk
|
|
|
|
WHERE prsstart != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.prsstart);
|
|
|
|
ctid | prsstart
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, prstoken
|
|
|
|
FROM pg_catalog.pg_ts_parser fk
|
|
|
|
WHERE prstoken != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.prstoken);
|
|
|
|
ctid | prstoken
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, prsend
|
|
|
|
FROM pg_catalog.pg_ts_parser fk
|
|
|
|
WHERE prsend != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.prsend);
|
|
|
|
ctid | prsend
|
|
|
|
------+--------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, prsheadline
|
|
|
|
FROM pg_catalog.pg_ts_parser fk
|
|
|
|
WHERE prsheadline != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.prsheadline);
|
|
|
|
ctid | prsheadline
|
|
|
|
------+-------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, prslextype
|
|
|
|
FROM pg_catalog.pg_ts_parser fk
|
|
|
|
WHERE prslextype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.prslextype);
|
|
|
|
ctid | prslextype
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, tmplnamespace
|
|
|
|
FROM pg_catalog.pg_ts_template fk
|
|
|
|
WHERE tmplnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.tmplnamespace);
|
|
|
|
ctid | tmplnamespace
|
|
|
|
------+---------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, tmplinit
|
|
|
|
FROM pg_catalog.pg_ts_template fk
|
|
|
|
WHERE tmplinit != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.tmplinit);
|
|
|
|
ctid | tmplinit
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, tmpllexize
|
|
|
|
FROM pg_catalog.pg_ts_template fk
|
|
|
|
WHERE tmpllexize != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.tmpllexize);
|
|
|
|
ctid | tmpllexize
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, typnamespace
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typnamespace != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_namespace pk WHERE pk.oid = fk.typnamespace);
|
|
|
|
ctid | typnamespace
|
|
|
|
------+--------------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-23 01:43:13 +01:00
|
|
|
SELECT ctid, typowner
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typowner != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_authid pk WHERE pk.oid = fk.typowner);
|
|
|
|
ctid | typowner
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, typrelid
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typrelid != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.typrelid);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | typrelid
|
|
|
|
------+----------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, typelem
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typelem != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.typelem);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | typelem
|
|
|
|
------+---------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
Support arrays of composite types, including the rowtypes of regular tables
and views (but not system catalogs, nor sequences or toast tables). Get rid
of the hardwired convention that a type's array type is named exactly "_type",
instead using a new column pg_type.typarray to provide the linkage. (It still
will be named "_type", though, except in odd corner cases such as
maximum-length type names.)
Along the way, make tracking of owner and schema dependencies for types more
uniform: a type directly created by the user has these dependencies, while a
table rowtype or auto-generated array type does not have them, but depends on
its parent object instead.
David Fetter, Andrew Dunstan, Tom Lane
2007-05-11 19:57:14 +02:00
|
|
|
SELECT ctid, typarray
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typarray != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.typarray);
|
|
|
|
ctid | typarray
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, typinput
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typinput != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typinput);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | typinput
|
|
|
|
------+----------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2002-09-05 21:58:14 +02:00
|
|
|
SELECT ctid, typoutput
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typoutput != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typoutput);
|
2001-08-10 20:57:42 +02:00
|
|
|
ctid | typoutput
|
|
|
|
------+-----------
|
2000-01-05 07:06:23 +01:00
|
|
|
(0 rows)
|
1999-03-26 09:02:52 +01:00
|
|
|
|
2003-05-09 00:19:58 +02:00
|
|
|
SELECT ctid, typreceive
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typreceive != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typreceive);
|
|
|
|
ctid | typreceive
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, typsend
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typsend != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typsend);
|
|
|
|
ctid | typsend
|
|
|
|
------+---------
|
|
|
|
(0 rows)
|
|
|
|
|
2006-12-30 22:21:56 +01:00
|
|
|
SELECT ctid, typmodin
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typmodin != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typmodin);
|
|
|
|
ctid | typmodin
|
|
|
|
------+----------
|
|
|
|
(0 rows)
|
|
|
|
|
|
|
|
SELECT ctid, typmodout
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typmodout != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typmodout);
|
|
|
|
ctid | typmodout
|
|
|
|
------+-----------
|
|
|
|
(0 rows)
|
|
|
|
|
2008-10-13 14:59:57 +02:00
|
|
|
SELECT ctid, typanalyze
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typanalyze != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.typanalyze);
|
|
|
|
ctid | typanalyze
|
|
|
|
------+------------
|
|
|
|
(0 rows)
|
|
|
|
|
2003-05-14 05:26:03 +02:00
|
|
|
SELECT ctid, typbasetype
|
|
|
|
FROM pg_catalog.pg_type fk
|
|
|
|
WHERE typbasetype != 0 AND
|
|
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type pk WHERE pk.oid = fk.typbasetype);
|
|
|
|
ctid | typbasetype
|
|
|
|
------+-------------
|
|
|
|
(0 rows)
|
|
|
|
|