Does psql evaluate OR conditions in order?

From: HideMe <r36(at)tara-lu(dot)com>
To: <pgsql-novice(at)postgresql(dot)org>
Subject: Does psql evaluate OR conditions in order?
Date: 2013-01-16 21:04:59
Message-ID: e364b7b91b2f303cb37add13b25b799a@webmail.webfaction.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Postgres 9.1
Ubuntu something.

We have a stored procedure that performs the following evaluations:

IF ST_Intersects(line1, line2) OR ST_Intersects(line3, line4) THEN
do stuff
ELSIF ST_Intersects(line5, line6) OR ST_Intersects(line7, line8) THEN
do stuffB
END IF;

98% of the time the 2nd half of these IF statements will never be true.
ST_Intersects is an expensive operations to perform.

Given we're executing this across a lot of data... avoiding expensive
calls is a good idea.
So, can we count on the evaluation of the 1st half of the IF's being
done first before trying the 2nd half, or
should we re-write the IF/ELSE to

IF ST_Intersects(line1, line2) THEN
do stuff
ELSIF ST_Intersects(line5, line6) THEN
do stuffB
ELSIF ST_Intersects(line3, line4) THEN
do stuff
ELSIF ST_Intersects(line7, line8) THEN
do stuffB
END IF;

Roxanne

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Tom Lane 2013-01-16 21:40:10 Re: Does psql evaluate OR conditions in order?
Previous Message jody 2013-01-07 21:48:05 Re: db dump from php