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