On Mon, Jan 8, 2024 at 3:32 AM Richard Guo <guofenglinux@gmail.com> wrote: > Thanks for the suggestion. Attached is an updated patch which is added > with a commit message that tries to explain the problem and the fix.
This is great. The references to "the sampling infos" are a little bit confusing to me. I'm not sure if this is referring to TableSampleClause objects or what.
Yeah, it's referring to TableSampleClause objects. I've updated the commit message to clarify that. In passing I also updated the test cases a bit. Please see v10-0001-Postpone-reparameterization-of-paths-until-when-creating-plans.patch
> Fair point. I think we can back-patch a more minimal fix, as Tom > proposed in [1], which disallows the reparameterization if the path > contains sampling info that references the outer rel. But I think we > need also to disallow the reparameterization of a path if it contains > restriction clauses that reference the outer rel, as such paths have > been found to cause incorrect results, or planning errors as in [2].
Do you want to produce a patch for that, to go along with this patch for master?
Sure, here it is: v10-0001-Avoid-reparameterizing-Paths-when-it-s-not-suitable.patch