Jeff Janes <jeff.janes@gmail.com> writes:
> On Sat, Apr 6, 2013 at 9:27 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Yeah, eqjoinsel() is O(N^2) in the lengths of the MCV lists, in the
>> worst case where there's little overlap in the list memberships.
> I guess this pre-emptively answers a question I was intending to ask on
> performance: Whether anyone increased default_statistics_target and came
> to regret it. I had seen several problems fixed by increasing
> default_statistics_target, but this is the first one I recall caused by
> increasing it.
I recall having heard some similar complaints before, but not often.
> Do you think fixing the O(N^2) behavior would be a good to-do item?
If you can think of a way to do it that doesn't create new assumptions
that eqjoinsel ought not make (say, that the datatype is sortable).
I guess one possibility is to have a different join selectivity function
for those types that *are* sortable, which would fix the issue for most
commonly used types.
regards, tom lane