Re: query evaluation - Mailing list pgsql-general

From Scott Marlowe
Subject Re: query evaluation
Date
Msg-id dcc563d10811261804s7be37c52v413382d8a7f6bca9@mail.gmail.com
Whole thread Raw
In response to query evaluation  ("Ravi Chemudugunta" <chemuduguntar@gmail.com>)
List pgsql-general
On Wed, Nov 26, 2008 at 6:36 PM, Ravi Chemudugunta
<chemuduguntar@gmail.com> wrote:
> Hi all,
>
> I have the following query.
>
> select part_id, consume_part(part_id) from part where in_use = false;
>
> does it:
>     a/  iterate over all parts, calling consume on them and then show the
> records where in_use is false (i.e. all parts have been consumed by the SP
> consume_part) or
>
>     b/ filter the list using in_use = false and apply consume_part SP to
> those part_id's ?
>
> It is very _scary_ to imagine the first prospect, worse is if it did a mix
> of a/ and b/ ... where it does not apply consume_part on all parts but a
> partial set of parts that are exclusive of the set provided by SP, because
> then it would be unknown how the query worked (atleast if it consumed all
> parts then you could do something).

I'm quite sure it fires the where clause first, but to prove it to
yourself, run it with explain analyze and look at the query plan.

pgsql-general by date:

Previous
From: Klint Gore
Date:
Subject: Re: Group by clause creating "ERROR: wrong record type supplied in RETURN NEXT" (version 8.1.11 -- grr...)
Next
From: Abdul Rahman
Date:
Subject: Re: [ADMIN] PgAgent Job Scehduler is NOT running