On Sun, 2011-11-13 at 15:38 -0500, Tom Lane wrote: > If the table has been analyzed, then the > most_common_values array for column ir will consist of > {empty} > which is entirely correct since that value accounts for 16% of the > table. And then, when mcv_selectivity tries to estimate the selectivity > of the << condition, it applies range_before to the empty range along > with the int4range(100,500) value, and range_before spits up. > > I think this demonstrates that the current definition of range_before is > broken. It is not reasonable for it to throw an error on a perfectly > valid input ... at least, not unless you'd like to mark it VOLATILE so > that the planner will not risk calling it. > > What shall we have it do instead?
We could have it return NULL, I suppose. I was worried that that would lead to confusion between NULL and the empty range, but it might be better than marking it VOLATILE. Thoughts, other ideas? Regards, Jeff Davis -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers