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