[ sorry for slow response, but I'd not gotten time to think about this... ]
Sam Ross <elliptic@gmail.com> writes:
> I was wondering why it seems that the query planner can't "see", based
> on the histograms, that two join-columns have a very small
> intersection, and adjust its row estimation accordingly.
The reason why not is that eqjoinsel() doesn't take any such
consideration into account. It's possible that it'd be a good idea
to teach it to do so. I'm not entirely convinced though. It would
add a fair amount of expense to that function, as well as adding
some possibly shaky assumptions, and I'm not sure how often we'd
get a usefully-better estimate in practice. OTOH, there are a lot
of shaky assumptions in eqjoinsel() already, and we did decide this
was worth worrying about in mergejoin cost estimation.
Do you want to try it and submit a patch for testing?
regards, tom lane