mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-22 22:00:40 +02:00
a78fcfb512
cases. Operator classes now exist within "operator families". While most families are equivalent to a single class, related classes can be grouped into one family to represent the fact that they are semantically compatible. Cross-type operators are now naturally adjunct parts of a family, without having to wedge them into a particular opclass as we had done originally. This commit restructures the catalogs and cleans up enough of the fallout so that everything still works at least as well as before, but most of the work needed to actually improve the planner's behavior will come later. Also, there are not yet CREATE/DROP/ALTER OPERATOR FAMILY commands; the only way to create a new family right now is to allow CREATE OPERATOR CLASS to make one by default. I owe some more documentation work, too. But that can all be done in smaller pieces once this infrastructure is in place.
764 lines
19 KiB
Plaintext
764 lines
19 KiB
Plaintext
--
|
|
-- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check
|
|
--
|
|
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);
|
|
ctid | aggfnoid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | aggtransfn
|
|
------+------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | aggfinalfn
|
|
------+------------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | aggtranstype
|
|
------+--------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | aminsert
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | ambeginscan
|
|
------+-------------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
SELECT ctid, amgetmulti
|
|
FROM pg_catalog.pg_am fk
|
|
WHERE amgetmulti != 0 AND
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.amgetmulti);
|
|
ctid | amgetmulti
|
|
------+------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | amrescan
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | amendscan
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | ammarkpos
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | amrestrpos
|
|
------+------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | ambuild
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | ambulkdelete
|
|
------+--------------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | amcostestimate
|
|
------+----------------
|
|
(0 rows)
|
|
|
|
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
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
SELECT ctid, amopfamily
|
|
FROM pg_catalog.pg_amop fk
|
|
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
|
|
------+---------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | amopopr
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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
|
|
FROM pg_catalog.pg_amproc fk
|
|
WHERE amprocfamily != 0 AND
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_opfamily pk WHERE pk.oid = fk.amprocfamily);
|
|
ctid | amprocfamily
|
|
------+--------------
|
|
(0 rows)
|
|
|
|
SELECT ctid, amproclefttype
|
|
FROM pg_catalog.pg_amproc fk
|
|
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
|
|
------+-----------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | amproc
|
|
------+--------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | attrelid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | atttypid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | reltype
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | relam
|
|
------+-------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | reltoastrelid
|
|
------+---------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | reltoastidxid
|
|
------+---------------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | classoid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | indexrelid
|
|
------+------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | indrelid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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
|
|
FROM pg_catalog.pg_opclass fk
|
|
WHERE opcmethod != 0 AND
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_am pk WHERE pk.oid = fk.opcmethod);
|
|
ctid | opcmethod
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | opcintype
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | oprleft
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprright
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprresult
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprcom
|
|
------+--------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprnegate
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprcode
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprrest
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | oprjoin
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | prolang
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | prorettype
|
|
------+------------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | ev_class
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | starelid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | staop1
|
|
------+--------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | staop2
|
|
------+--------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | staop3
|
|
------+--------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
SELECT ctid, tgrelid
|
|
FROM pg_catalog.pg_trigger fk
|
|
WHERE tgrelid != 0 AND
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.tgrelid);
|
|
ctid | tgrelid
|
|
------+---------
|
|
(0 rows)
|
|
|
|
SELECT ctid, tgfoid
|
|
FROM pg_catalog.pg_trigger fk
|
|
WHERE tgfoid != 0 AND
|
|
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_proc pk WHERE pk.oid = fk.tgfoid);
|
|
ctid | tgfoid
|
|
------+--------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
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);
|
|
ctid | typrelid
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | typelem
|
|
------+---------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | typinput
|
|
------+----------
|
|
(0 rows)
|
|
|
|
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);
|
|
ctid | typoutput
|
|
------+-----------
|
|
(0 rows)
|
|
|
|
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)
|
|
|
|
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)
|
|
|