On Wed, Jul 16, 2014 at 1:17 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
David Rowley <dgrowleyml@gmail.com> writes: > I've attached an updated patch which puts in some fast path code for > subquery type joins. I'm really not too sure on a good name for this > function. I've ended up with query_supports_distinctness() which I'm not > that keen on, but I didn't manage to come up with anything better.
I've committed this with some mostly but not entirely cosmetic changes.
Great! thanks for taking the time to give me guidance on this and commit it too.
Simon, thank you for taking the time to review the code.
Notably, I felt that pathnode.c was a pretty questionable place to be exporting distinctness-proof logic from, and after some reflection decided to move those functions to analyzejoins.c; that's certainly a better place for them than pathnode.c, and I don't see any superior third alternative.
That seems like a good change. Also makes be wonder a bit why clause_sides_match_join is duplicated in joinpath.c and analyzejoins.c, is this just so that it can be inlined?
Thanks also for making the change to create_unique_path to make use of the new query_supports_distinctness function.