| From: | Robert James <srobertjames(at)gmail(dot)com> |
|---|---|
| To: | Marti Raudsepp <marti(at)juffo(dot)org> |
| Cc: | Postgres General <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Logical Aggregate Functions (eg ANY()) |
| Date: | 2011-12-18 00:06:21 |
| Message-ID: | CAGYyBgie=9a3JaM9tYORVYhtwybW_Er+v+B+fY2Bof377xgkvQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 12/15/11, Marti Raudsepp <marti(at)juffo(dot)org> wrote:
> On Thu, Dec 15, 2011 at 18:10, Robert James <srobertjames(at)gmail(dot)com> wrote:
>> How do I do the equivalent of an ANY() or ALL() in PG Aggregate SQL?
>
> Note that in many cases, writing an EXISTS(SELECT ...) or NOT
> EXISTS(...) subquery is faster, since the planner can often optimize
> those to a single index access -- whereas an aggregate function would
> necessarily need to walk through and evaluate all potential rows.
>
Really? The planner can't tell that, for instance, BOOL_AND (false, *)
is automatically false?
(BTW Thanks for the great responses everyone! On this and other posts
on this list)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Chris Angelico | 2011-12-18 02:53:00 | Performance question: Commit or rollback? |
| Previous Message | Robert James | 2011-12-18 00:04:18 | Re: CREATE OR REPLACE AGGREGATE |