Re: 8.3 planner handling of IS NULL in aggregations

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: 8.3 planner handling of IS NULL in aggregations
Date: 2008-07-04 17:22:37
Message-ID: 20080704172237.GA2572@frubble.xen.chris-lamb.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, Jul 04, 2008 at 12:37:48PM -0400, Tom Lane wrote:
> Yeah, estimate_num_groups doesn't have any special knowledge about IS
> NULL -- it just sees this as "an expression involving col". The
> general assumption about that is that the expression doesn't reduce
> the number of groups (think "col + 1" for example). In general I'd
> rather it overestimated the number of groups than underestimated,
> so I don't think this heuristic is really wrong.

Hum, I thought it tried harder than that---I remembered date_trunc doing
special things, but it doesn't seem to. Ah well!

> Putting in a special case for IS NULL seems a bit silly, but maybe
> checking for a boolean result type would cover enough real-world
> uses to be worth the trouble? Not sure.

Sounds sensible. It would generalize nicely to the new enum types as
well, use the minimum of the expected number of rows or the size of the
result type's domain.

Sam

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2008-07-04 17:26:42 Re: [Postgresql 8.2.3] autovacuum starting up even after disabling ?
Previous Message Tom Lane 2008-07-04 16:37:48 Re: 8.3 planner handling of IS NULL in aggregations