I've tried to write audit trigger which fires only when data changed, so I used "WHEN (OLD.* IS DISTINCT FROM NEW.*)" clause as described in
documentation. Should this clause be independent from data type? because an error occurs when I'm trying to modify row with point data type:
ERROR: could not identify an equality operator for type point Example:
CREATE TABLE IF NOT EXISTS test1
( col1 POINT
)
WITH (
OIDS =FALSE
);
INSERT INTO test1 VALUES ('(0,1)');
CREATE OR REPLACE FUNCTION test_update() RETURNS TRIGGER AS $BODY$ BEGIN
RETURN NEW;
END; $BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE TRIGGER trigger_update_test
AFTER UPDATE
ON test1
FOR EACH ROW
WHEN ((old.* IS DISTINCT FROM new.*))
EXECUTE PROCEDURE test_update();
UPDATE test1 SET col1 = '(9,0)';
View this message in context:
Shouldn't "WHEN (OLD.* IS DISTINCT FROM NEW.*)" clause be independent from data type? Sent from the
PostgreSQL - general mailing list archive at Nabble.com.