Re: Empty Updates, ON UPDATE triggers and Rules - Mailing list pgsql-general

From Michael Glaesemann
Subject Re: Empty Updates, ON UPDATE triggers and Rules
Date
Msg-id 600DA7A0-A73C-4704-A7C9-0FC52087EC34@seespotcode.net
Whole thread Raw
In response to Re: Empty Updates, ON UPDATE triggers and Rules  (Josh Trutwin <josh@trutwins.homeip.net>)
Responses Re: Empty Updates, ON UPDATE triggers and Rules
List pgsql-general
On Aug 6, 2009, at 15:31 , Josh Trutwin wrote:

> Interestingly, this syntax is accepted in 8.3.7, but SELECT queries
> fail:
>
> CREATE TRIGGER trigger_test_upd_set_last_mod
> BEFORE UPDATE ON test_upd
> FOR EACH ROW EXECUTE PROCEDURE set_last_modified();
>
> Then:
>
> UPDATE test_upd SET foo = 'foo' WHERE id = 1;
> ERROR:  operator does not exist: test_upd <> test_upd
> LINE 1: SELECT   $1  !=  $2
>                     ^
> HINT:  No operator matches the given name and argument type(s). You
> might need to add explicit type casts. QUERY:  SELECT   $1  !=  $2
> CONTEXT:  PL/pgSQL function "set_last_modified_test" line 2 at IF


That's not a SELECT query per se: AIUI it's how the evaluation of the
NEW != OLD expression is evaluated within the PL/pgSQL function as
part of the IF statement (note the "line 2 at IF" context line). It's
just saying the <> operator doesn't exist for the test_upd rowtype.

Michael Glaesemann
grzm seespotcode net




pgsql-general by date:

Previous
From: Josh Trutwin
Date:
Subject: Re: Empty Updates, ON UPDATE triggers and Rules
Next
From: Paul Rogers
Date:
Subject: Foreign Key Deferrable Misunderstanding or Bug?