Richard Guo <guofengli...@gmail.com> writes: > The fix is straightforward, just to use outerrel->top_parent if it is > not null and leave the reparameterization work to try_nestloop_path. In > addition, I believe when reparameterizing MemoizePath we need to adjust > its param_exprs too.
Right you are. I'd noticed the apparent omission in reparameterize_path_by_child, but figured that we'd need a test case to find any other holes before it'd be worth fixing. Thanks for finding a usable test case. One small problem is that top_parent doesn't exist in the back branches, so I had to substitute a much uglier lookup in order to make this work there. I'm surprised that we got away without top_parent for this long TBH, but anyway this fix validates the wisdom of 2f17b5701. So, pushed with some cosmetic adjustments and the modified back-branch code. regards, tom lane