mirror of https://github.com/postgres/postgres
This avoids leaving dangling links in pg_operator; which while fairly harmless are also unsightly. While we're at it, simplify OperatorUpd, which went through heap_modify_tuple for no very good reason considering it had already made a tuple copy it could just scribble on. Roma Sokolov, reviewed by Tomas Vondra, additional hacking by Robert Haas and myself.pull/11/head
parent
d543170f2f
commit
c94959d411
@ -0,0 +1,61 @@ |
|||||||
|
CREATE OPERATOR === ( |
||||||
|
PROCEDURE = int8eq, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint, |
||||||
|
COMMUTATOR = === |
||||||
|
); |
||||||
|
CREATE OPERATOR !== ( |
||||||
|
PROCEDURE = int8ne, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint, |
||||||
|
NEGATOR = ===, |
||||||
|
COMMUTATOR = !== |
||||||
|
); |
||||||
|
DROP OPERATOR !==(bigint, bigint); |
||||||
|
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) |
||||||
|
|
||||||
|
DROP OPERATOR ===(bigint, bigint); |
||||||
|
CREATE OPERATOR <| ( |
||||||
|
PROCEDURE = int8lt, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint |
||||||
|
); |
||||||
|
CREATE OPERATOR |> ( |
||||||
|
PROCEDURE = int8gt, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint, |
||||||
|
NEGATOR = <|, |
||||||
|
COMMUTATOR = <| |
||||||
|
); |
||||||
|
DROP OPERATOR |>(bigint, bigint); |
||||||
|
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) |
||||||
|
|
||||||
|
DROP OPERATOR <|(bigint, bigint); |
||||||
@ -0,0 +1,56 @@ |
|||||||
|
CREATE OPERATOR === ( |
||||||
|
PROCEDURE = int8eq, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint, |
||||||
|
COMMUTATOR = === |
||||||
|
); |
||||||
|
|
||||||
|
CREATE OPERATOR !== ( |
||||||
|
PROCEDURE = int8ne, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint, |
||||||
|
NEGATOR = ===, |
||||||
|
COMMUTATOR = !== |
||||||
|
); |
||||||
|
|
||||||
|
DROP OPERATOR !==(bigint, bigint); |
||||||
|
|
||||||
|
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); |
||||||
|
|
||||||
|
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); |
||||||
|
|
||||||
|
DROP OPERATOR ===(bigint, bigint); |
||||||
|
|
||||||
|
CREATE OPERATOR <| ( |
||||||
|
PROCEDURE = int8lt, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint |
||||||
|
); |
||||||
|
|
||||||
|
CREATE OPERATOR |> ( |
||||||
|
PROCEDURE = int8gt, |
||||||
|
LEFTARG = bigint, |
||||||
|
RIGHTARG = bigint, |
||||||
|
NEGATOR = <|, |
||||||
|
COMMUTATOR = <| |
||||||
|
); |
||||||
|
|
||||||
|
DROP OPERATOR |>(bigint, bigint); |
||||||
|
|
||||||
|
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); |
||||||
|
|
||||||
|
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); |
||||||
|
|
||||||
|
DROP OPERATOR <|(bigint, bigint); |
||||||
Loading…
Reference in new issue