MCPcopy Create free account
hub / github.com/apache/cloudberry / transformJoinOnClause

Function transformJoinOnClause

src/backend/parser/parse_clause.c:507–532  ·  view source on GitHub ↗

transformJoinOnClause() * Transform the qual conditions for JOIN/ON. * Result is a transformed qualification expression. */

Source from the content-addressed store, hash-verified

505 * Result is a transformed qualification expression.
506 */
507static Node *
508transformJoinOnClause(ParseState *pstate, JoinExpr *j, List *namespace)
509{
510 Node *result;
511 List *save_namespace;
512
513 /*
514 * The namespace that the join expression should see is just the two
515 * subtrees of the JOIN plus any outer references from upper pstate
516 * levels. Temporarily set this pstate's namespace accordingly. (We need
517 * not check for refname conflicts, because transformFromClauseItem()
518 * already did.) All namespace items are marked visible regardless of
519 * LATERAL state.
520 */
521 setNamespaceLateralState(namespace, false, true);
522
523 save_namespace = pstate->p_namespace;
524 pstate->p_namespace = namespace;
525
526 result = transformWhereClause(pstate, j->quals,
527 EXPR_KIND_JOIN_ON, "JOIN/ON");
528
529 pstate->p_namespace = save_namespace;
530
531 return result;
532}
533
534/*
535 * transformTableEntry --- transform a RangeVar (simple relation reference)

Callers 1

transformFromClauseItemFunction · 0.85

Calls 2

setNamespaceLateralStateFunction · 0.85
transformWhereClauseFunction · 0.85

Tested by

no test coverage detected