mirror of
https://github.com/postgres/postgres.git
synced 2025-08-25 20:23:07 +03:00
Fix Memoize to work with partitionwise joining.
A couple of places weren't up to speed for this. By sheer good luck, we didn't fail but just selected a non-memoized join plan, at least in the test case we have. Nonetheless, it's a bug, and I'm not quite sure that it couldn't have worse consequences in other examples. So back-patch to v14 where Memoize came in. Richard Guo Discussion: https://postgr.es/m/CAMbWs48GkNom272sfp0-WeD6_0HSR19BJ4H1c9ZKSfbVnJsvRg@mail.gmail.com
This commit is contained in:
@@ -597,7 +597,8 @@ get_memoize_path(PlannerInfo *root, RelOptInfo *innerrel,
|
||||
/* Check if we have hash ops for each parameter to the path */
|
||||
if (paraminfo_get_equal_hashops(root,
|
||||
inner_path->param_info,
|
||||
outerrel,
|
||||
outerrel->top_parent ?
|
||||
outerrel->top_parent : outerrel,
|
||||
innerrel,
|
||||
¶m_exprs,
|
||||
&hash_operators,
|
||||
|
@@ -4246,6 +4246,7 @@ do { \
|
||||
|
||||
FLAT_COPY_PATH(mpath, path, MemoizePath);
|
||||
REPARAMETERIZE_CHILD_PATH(mpath->subpath);
|
||||
ADJUST_CHILD_ATTRS(mpath->param_exprs);
|
||||
new_path = (Path *) mpath;
|
||||
}
|
||||
break;
|
||||
|
Reference in New Issue
Block a user