Re: BUG #5576: Boolean operation should not be Complete boolean evaluation - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #5576: Boolean operation should not be Complete boolean evaluation
Date
Msg-id 11349.1280412868@sss.pgh.pa.us
Whole thread Raw
In response to BUG #5576: Boolean operation should not be Complete boolean evaluation  ("y.y.chen" <segma.yychen@msa.hinet.net>)
List pgsql-bugs
"y.y.chen" <segma.yychen@msa.hinet.net> writes:
> When I run SQL -scripts in trigger/PlpgSQL:

> IF (TG_OP = 'INSERT') OR (old.size<>new.size) THEN
> .......
> END IF;

>  It raise a exception: RECORD old never be defined,
>  while TG_OP is 'INSERT'.

Yup, that's how it works.  SQL OR is not guaranteed to be short-circuit
in the same way it is in some programming languages.  You need to use
nested IF statements to make this work safely.

            regards, tom lane

pgsql-bugs by date:

Previous
From: "y.y.chen"
Date:
Subject: BUG #5577: Boolean operation should not be Complete boolean evaluation
Next
From: "Henk Enting"
Date:
Subject: BUG #5582: check constraints get merged to often with multiple inheritance