Tom,
> Ray Ontko <rayo@ontko.com> writes:
> > 1) here's the "bad" stats.
> > 2) here's the "good" stats.
> > Note that the information really is different.
>
> Yeah. It seems that the critical difference is the null_frac; if I take
> your "bad" values and change null_frac to 0 then I get
> reasonable-looking answers, but with null_frac = 0.000333333 I indeed
> get bad answers. I suspect null_frac is getting double-counted
> somewhere, and depending on just how many nulls ANALYZE happens to find,
> you might get pushed over the edge from a small selectivity to zero or
> negative selectivity. Will dig further.
Does this help?
develop=# select count(*) from actor where actor_full_name is not null ;
count
--------
433809
(1 row)
develop=# select count(*) from actor ;
count
--------
433902
(1 row)
Ray
----------------------------------------------------------------------
Ray Ontko rayo@ontko.com Phone 1.765.935.4283 Fax 1.765.962.9788
Ray Ontko & Co. Software Consulting Services http://www.ontko.com/