This is an automated email from the ASF dual-hosted git repository. reshke pushed a commit to branch jdejii in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 96ad4c6552d08c95f27735e281ed510ddd8fa117 Author: reshke <[email protected]> AuthorDate: Mon Aug 17 08:39:37 2026 +0000 Fix JOIN motion type selection for join quals containing outer refs --- src/backend/optimizer/plan/initsplan.c | 3 --- src/backend/optimizer/util/restrictinfo.c | 9 +++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c index b65897043ca..ce05a4301a4 100644 --- a/src/backend/optimizer/plan/initsplan.c +++ b/src/backend/optimizer/plan/initsplan.c @@ -2970,9 +2970,6 @@ distribute_restrictinfo_to_rels(PlannerInfo *root, Relids relids = restrictinfo->required_relids; RelOptInfo *rel; - if (contains_outer_params((Node *) restrictinfo->clause, root)) - restrictinfo->contain_outer_query_references = true; - switch (bms_membership(relids)) { case BMS_SINGLETON: diff --git a/src/backend/optimizer/util/restrictinfo.c b/src/backend/optimizer/util/restrictinfo.c index 45552d53aaf..c1a9404e91d 100644 --- a/src/backend/optimizer/util/restrictinfo.c +++ b/src/backend/optimizer/util/restrictinfo.c @@ -14,6 +14,7 @@ */ #include "postgres.h" +#include "cdb/cdbmutate.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" @@ -263,6 +264,14 @@ make_restrictinfo_internal(PlannerInfo *root, restrictinfo->left_hasheqoperator = InvalidOid; restrictinfo->right_hasheqoperator = InvalidOid; + /* + * Determine whether this clause references any var in outer query levels. + * Such clauses must be evaluated in the same slice as the parent query, + * so we set this planner hint to later use in join motion planning. + */ + restrictinfo->contain_outer_query_references = + contains_outer_params((Node *) clause, root); + return restrictinfo; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
