Re: query evaluation

From: "Scott Marlowe" <scott(dot)marlowe(at)gmail(dot)com>
To: "Ravi Chemudugunta" <chemuduguntar(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: query evaluation
Date: 2008-11-27 02:04:28
Message-ID: dcc563d10811261804s7be37c52v413382d8a7f6bca9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Nov 26, 2008 at 6:36 PM, Ravi Chemudugunta
<chemuduguntar(at)gmail(dot)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.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Abdul Rahman 2008-11-27 07:43:25 Re: PgAgent Job Scehduler is NOT running
Previous Message Klint Gore 2008-11-27 01:51:05 Re: Group by clause creating "ERROR: wrong record type supplied in RETURN NEXT" (version 8.1.11 -- grr...)