Re: short ciruit logic of plpgsql in 8.2
| От | Ian Harding |
|---|---|
| Тема | Re: short ciruit logic of plpgsql in 8.2 |
| Дата | |
| Msg-id | 725602300705221055i3bc2317dw9f588ed6ee539b96@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: short ciruit logic of plpgsql in 8.2 (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-general |
This keeps biting me. In a trigger function for INSERT OR UPDATE if you try
IF TG_OP = 'UPDATE' AND OLD.foo = 'bar' THEN
...
it will blow up on inserts because there is no OLD. I always expect
this to short circuit and am always disappointed. Easy fix, of
course...
IF TG_OP = 'UPDATE' THEN
IF OLD.foo = 'bar' THEN
...
In case this was what the OP was asking about in particular, it still
happens to me in 8.2
- Ian
On 5/17/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Richard Broersma Jr <rabroersma@yahoo.com> writes:
> > Does anyone know if logic operations in plpgsql are short circuited in 8.2?
>
> They are often optimized, but if you expect "short circuiting" following
> exactly the rules of, say, C, you are likely to be disappointed. See
> the manual:
>
> http://www.postgresql.org/docs/8.2/static/sql-expressions.html#SYNTAX-EXPRESS-EVAL
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
В списке pgsql-general по дате отправления: