PL/PGSQL: why IF test the whole condition before failing or not? - Mailing list pgsql-general

From Suporte PK
Subject PL/PGSQL: why IF test the whole condition before failing or not?
Date
Msg-id 4A8B1BDE.6000607@pksoftware.com.br
Whole thread Raw
Responses Re: PL/PGSQL: why IF test the whole condition before failing or not?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Hi list,

I'm having trouble with - believe me! - the IF operator on a PL/PGSQL
function used by a trigger.

I'm using one unique function to process the three triggers events
(delete, update and insert), but when I reference OLD or NEW on a IF
CONDITION, I get an error even when testing BEFORE if it's a UPDATE
event or not.

example:

IF TG_OP = 'UPDATE' AND OLD.field != NEW.field THEN
...
END IF;

The question is: if the trigger was not fired by an UPDATE event,
shouldn't it make the first test and then ignore the rest of the condition?

I know that some languages work like this (testing the whole condition)
while others don't, but I searched for an alternative without success.

Any advice would be much appreciated!

Thanks in advance

pgsql-general by date:

Previous
From: Andre Lopes
Date:
Subject: Access Control System - Design
Next
From: Tom Lane
Date:
Subject: Re: PL/PGSQL: why IF test the whole condition before failing or not?