db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Masood Mortazavi <masoodmortaz...@gmail.com>
Subject Re: How AND clauses are evaluated in Derby
Date Tue, 21 Jun 2011 17:53:48 GMT
On Tue, Jun 21, 2011 at 4:17 AM, Knut Anders Hatlen
<knut.hatlen@oracle.com>wrote:

> Masood Mortazavi <masoodmortazavi@gmail.com> writes:
>
> > When a Derby "select" executes in the case when "where" is followed by
> > multiple conjoined AND clauses, will all the AND clauses be evaluated
> > even if the first one is false, in the scan?
>
> Derby will stop evaluating the clauses once one evaluates to false. Note
> however that the optimizer may reorder the AND clauses for efficiency,
> so if you code your application to rely on the short-circuiting (for
> example if the AND clauses call functions with side effects), the
> results may not be what you expect.
>


Thanks. That's interesting.

I had hoped that if the AND clause involves matching (through "IN") with
columns from two other tables, and if I put the smaller matching table at
the start, the optimizer will keep that order. If optimizer does not make
any provisions based on the size but only decides ordering based on
syntactic complexity of each of the clauses, it may get it wrong, in my
particular case.

- Masood

Mime
View raw message