Search Postgresql Archives

Re: Shortcut evaluation in OR or IN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the explanation.



On Mon, May 6, 2013 at 8:43 PM, Jasen Betts <jasen@xxxxxxxxxx> wrote:
On 2013-05-06, Tim Uckun <timuckun@xxxxxxxxx> wrote:
> --047d7b2e4ea07402b004dc034a3b
> Content-Type: text/plain; charset=UTF-8
>
> Say I have a select like this.
>
> SELECT * FROM table where field = X OR field = Y limit 1
>
> And I have two records one that matches X and one that matches Y will I
> always get X because the evaluation will stop after the first clause in the
> OR matches?

no. there is no guarantee which matching row you will get. Testing may
suggest that one answer is preferred but udating the table can change
which one. also you may get a different row without updating the table.

> What about for IN (X, Y)

same deal.

> how about if I am doing an update
>
> UPDATE table1 set x=table2.y where table1.field1 = table2.field1 OR
> table1.field2=table2.field2
>
> Will it update based on field1 if both fields match?

what difference does that make to the result?

> Basically I want to know if and how OR shortcuts the evaluation.

In a word. "unpredictably".

The planner will try to do the cheapest, most useful side first.

--
⚂⚃ 100% natural



--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux