mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-13 19:49:39 +02:00
bec98a31c5
There's now only one transition value and transition function. NULL handling in aggregates is a lot cleaner. Also, use Numeric accumulators instead of integer accumulators for sum/avg on integer datatypes --- this avoids overflow at the cost of being a little slower. Implement VARIANCE() and STDDEV() aggregates in the standard backend. Also, enable new LIKE selectivity estimators by default. Unrelated change, but as long as I had to force initdb anyway...
428 lines
11 KiB
Plaintext
428 lines
11 KiB
Plaintext
--
|
|
-- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check
|
|
--
|
|
SELECT oid, pg_aggregate.aggtransfn
|
|
FROM pg_aggregate
|
|
WHERE pg_aggregate.aggtransfn != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggtransfn);
|
|
oid | aggtransfn
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_aggregate.aggfinalfn
|
|
FROM pg_aggregate
|
|
WHERE pg_aggregate.aggfinalfn != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfinalfn);
|
|
oid | aggfinalfn
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_aggregate.aggbasetype
|
|
FROM pg_aggregate
|
|
WHERE pg_aggregate.aggbasetype != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype);
|
|
oid | aggbasetype
|
|
-----+-------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_aggregate.aggtranstype
|
|
FROM pg_aggregate
|
|
WHERE pg_aggregate.aggtranstype != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype);
|
|
oid | aggtranstype
|
|
-----+--------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_aggregate.aggfinaltype
|
|
FROM pg_aggregate
|
|
WHERE pg_aggregate.aggfinaltype != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype);
|
|
oid | aggfinaltype
|
|
-----+--------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.amgettuple
|
|
FROM pg_am
|
|
WHERE pg_am.amgettuple != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amgettuple);
|
|
oid | amgettuple
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.aminsert
|
|
FROM pg_am
|
|
WHERE pg_am.aminsert != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.aminsert);
|
|
oid | aminsert
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.amdelete
|
|
FROM pg_am
|
|
WHERE pg_am.amdelete != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amdelete);
|
|
oid | amdelete
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.ambeginscan
|
|
FROM pg_am
|
|
WHERE pg_am.ambeginscan != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ambeginscan);
|
|
oid | ambeginscan
|
|
-----+-------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.amrescan
|
|
FROM pg_am
|
|
WHERE pg_am.amrescan != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amrescan);
|
|
oid | amrescan
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.amendscan
|
|
FROM pg_am
|
|
WHERE pg_am.amendscan != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amendscan);
|
|
oid | amendscan
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.ammarkpos
|
|
FROM pg_am
|
|
WHERE pg_am.ammarkpos != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ammarkpos);
|
|
oid | ammarkpos
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.amrestrpos
|
|
FROM pg_am
|
|
WHERE pg_am.amrestrpos != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amrestrpos);
|
|
oid | amrestrpos
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.ambuild
|
|
FROM pg_am
|
|
WHERE pg_am.ambuild != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ambuild);
|
|
oid | ambuild
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_am.amcostestimate
|
|
FROM pg_am
|
|
WHERE pg_am.amcostestimate != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amcostestimate);
|
|
oid | amcostestimate
|
|
-----+----------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_amop.amopid
|
|
FROM pg_amop
|
|
WHERE pg_amop.amopid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_amop.amopid);
|
|
oid | amopid
|
|
-----+--------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_amop.amopclaid
|
|
FROM pg_amop
|
|
WHERE pg_amop.amopclaid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_opclass AS t1 WHERE t1.oid = pg_amop.amopclaid);
|
|
oid | amopclaid
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_amop.amopopr
|
|
FROM pg_amop
|
|
WHERE pg_amop.amopopr != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_amop.amopopr);
|
|
oid | amopopr
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_amproc.amid
|
|
FROM pg_amproc
|
|
WHERE pg_amproc.amid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_amproc.amid);
|
|
oid | amid
|
|
-----+------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_amproc.amopclaid
|
|
FROM pg_amproc
|
|
WHERE pg_amproc.amopclaid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_opclass AS t1 WHERE t1.oid = pg_amproc.amopclaid);
|
|
oid | amopclaid
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_amproc.amproc
|
|
FROM pg_amproc
|
|
WHERE pg_amproc.amproc != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amproc.amproc);
|
|
oid | amproc
|
|
-----+--------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_attribute.attrelid
|
|
FROM pg_attribute
|
|
WHERE pg_attribute.attrelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_attribute.attrelid);
|
|
oid | attrelid
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_attribute.atttypid
|
|
FROM pg_attribute
|
|
WHERE pg_attribute.atttypid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_attribute.atttypid);
|
|
oid | atttypid
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_class.reltype
|
|
FROM pg_class
|
|
WHERE pg_class.reltype != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_class.reltype);
|
|
oid | reltype
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_class.relam
|
|
FROM pg_class
|
|
WHERE pg_class.relam != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_class.relam);
|
|
oid | relam
|
|
-----+-------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_class.reltoastrelid
|
|
FROM pg_class
|
|
WHERE pg_class.reltoastrelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_class.reltoastrelid);
|
|
oid | reltoastrelid
|
|
-----+---------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_class.reltoastidxid
|
|
FROM pg_class
|
|
WHERE pg_class.reltoastidxid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_class.reltoastidxid);
|
|
oid | reltoastidxid
|
|
-----+---------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_index.indexrelid
|
|
FROM pg_index
|
|
WHERE pg_index.indexrelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_index.indexrelid);
|
|
oid | indexrelid
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_index.indrelid
|
|
FROM pg_index
|
|
WHERE pg_index.indrelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_index.indrelid);
|
|
oid | indrelid
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_opclass.opcdeftype
|
|
FROM pg_opclass
|
|
WHERE pg_opclass.opcdeftype != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_opclass.opcdeftype);
|
|
oid | opcdeftype
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprleft
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprleft != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprleft);
|
|
oid | oprleft
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprright
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprright != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprright);
|
|
oid | oprright
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprresult
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprresult != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprresult);
|
|
oid | oprresult
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprcom
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprcom != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprcom);
|
|
oid | oprcom
|
|
-----+--------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprnegate
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprnegate != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprnegate);
|
|
oid | oprnegate
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprlsortop
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprlsortop != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprlsortop);
|
|
oid | oprlsortop
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprrsortop
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprrsortop != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprrsortop);
|
|
oid | oprrsortop
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprcode
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprcode != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprcode);
|
|
oid | oprcode
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprrest
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprrest != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprrest);
|
|
oid | oprrest
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_operator.oprjoin
|
|
FROM pg_operator
|
|
WHERE pg_operator.oprjoin != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprjoin);
|
|
oid | oprjoin
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_proc.prolang
|
|
FROM pg_proc
|
|
WHERE pg_proc.prolang != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_language AS t1 WHERE t1.oid = pg_proc.prolang);
|
|
oid | prolang
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_proc.prorettype
|
|
FROM pg_proc
|
|
WHERE pg_proc.prorettype != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_proc.prorettype);
|
|
oid | prorettype
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_rewrite.ev_class
|
|
FROM pg_rewrite
|
|
WHERE pg_rewrite.ev_class != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_rewrite.ev_class);
|
|
oid | ev_class
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_statistic.starelid
|
|
FROM pg_statistic
|
|
WHERE pg_statistic.starelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_statistic.starelid);
|
|
oid | starelid
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_statistic.staop
|
|
FROM pg_statistic
|
|
WHERE pg_statistic.staop != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_statistic.staop);
|
|
oid | staop
|
|
-----+-------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_trigger.tgrelid
|
|
FROM pg_trigger
|
|
WHERE pg_trigger.tgrelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_trigger.tgrelid);
|
|
oid | tgrelid
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_trigger.tgfoid
|
|
FROM pg_trigger
|
|
WHERE pg_trigger.tgfoid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_trigger.tgfoid);
|
|
oid | tgfoid
|
|
-----+--------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_type.typrelid
|
|
FROM pg_type
|
|
WHERE pg_type.typrelid != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_type.typrelid);
|
|
oid | typrelid
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_type.typelem
|
|
FROM pg_type
|
|
WHERE pg_type.typelem != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_type.typelem);
|
|
oid | typelem
|
|
-----+---------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_type.typinput
|
|
FROM pg_type
|
|
WHERE pg_type.typinput != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typinput);
|
|
oid | typinput
|
|
-----+----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_type.typoutput
|
|
FROM pg_type
|
|
WHERE pg_type.typoutput != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typoutput);
|
|
oid | typoutput
|
|
-----+-----------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_type.typreceive
|
|
FROM pg_type
|
|
WHERE pg_type.typreceive != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typreceive);
|
|
oid | typreceive
|
|
-----+------------
|
|
(0 rows)
|
|
|
|
SELECT oid, pg_type.typsend
|
|
FROM pg_type
|
|
WHERE pg_type.typsend != 0 AND
|
|
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typsend);
|
|
oid | typsend
|
|
-----+---------
|
|
(0 rows)
|
|
|