From 59dec6c0b09f717e4ce78d54f578d56ef93bcc53 Mon Sep 17 00:00:00 2001 From: Richard Guo Date: Wed, 5 Nov 2025 12:29:31 +0900 Subject: [PATCH] Fix comments for ChangeVarNodes() and related functions The comment for ChangeVarNodes() refers to a parameter named change_RangeTblRef, which does not exist in the code. The comment for ChangeVarNodesExtended() contains an extra space, while the comment for replace_relid_callback() has an awkward line break and a typo. This patch fixes these issues and revises some sentences for smoother wording. Oversights in commits ab42d643c and fc069a3a6. Author: Richard Guo Discussion: https://postgr.es/m/CAMbWs480j16HC1JtjKCgj5WshivT8ZJYkOfTyZAM0POjFomJkg@mail.gmail.com Backpatch-through: 18 --- src/backend/optimizer/plan/analyzejoins.c | 18 +++++++++--------- src/backend/rewrite/rewriteManip.c | 19 ++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c index 6a3c030e8ef..e592e1ac3d1 100644 --- a/src/backend/optimizer/plan/analyzejoins.c +++ b/src/backend/optimizer/plan/analyzejoins.c @@ -1683,14 +1683,14 @@ add_non_redundant_clauses(PlannerInfo *root, } /* - * A custom callback for ChangeVarNodesExtended() providing - * Self-join elimination (SJE) related functionality + * A custom callback for ChangeVarNodesExtended() providing Self-join + * elimination (SJE) related functionality * - * SJE needs to skip the RangeTblRef node - * type. During SJE's last step, remove_rel_from_joinlist() removes - * remaining RangeTblRefs with target relid. If ChangeVarNodes() replaces - * the target relid before, remove_rel_from_joinlist() fails to identify - * the nodes to delete. + * SJE needs to skip the RangeTblRef node type. During SJE's last + * step, remove_rel_from_joinlist() removes remaining RangeTblRefs + * with target relid. If ChangeVarNodes() replaces the target relid + * before, remove_rel_from_joinlist() would fail to identify the nodes + * to delete. * * SJE also needs to change the relids within RestrictInfo's. */ @@ -1769,8 +1769,8 @@ replace_relid_callback(Node *node, ChangeVarNodes_context *context) /* * For self-join elimination, changing varnos could transform * "t1.a = t2.a" into "t1.a = t1.a". That is always true as long - * as "t1.a" is not null. We use qual() to check for such a case, - * and then we replace the qual for a check for not null + * as "t1.a" is not null. We use equal() to check for such a + * case, and then we replace the qual with a check for not null * (NullTest). */ if (leftOp != NULL && equal(leftOp, rightOp)) diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index cd786aa4112..0fcd1fbd14e 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -542,8 +542,6 @@ offset_relid_set(Relids relids, int offset) * (identified by sublevels_up and rt_index), and change their varno fields * to 'new_index'. The varnosyn fields are changed too. Also, adjust other * nodes that contain rangetable indexes, such as RangeTblRef and JoinExpr. - * Specifying 'change_RangeTblRef' to false allows skipping RangeTblRef. - * See ChangeVarNodesExtended for details. * * NOTE: although this has the form of a walker, we cheat and modify the * nodes in-place. The given expression tree should have been copied @@ -664,17 +662,16 @@ ChangeVarNodes_walker(Node *node, ChangeVarNodes_context *context) } /* - * ChangeVarNodesExtended - similar to ChangeVarNodes, but with an additional + * ChangeVarNodesExtended - similar to ChangeVarNodes, but with an additional * 'callback' param * - * ChangeVarNodes changes a given node and all of its underlying nodes. - * This version of function additionally takes a callback, which has a - * chance to process a node before ChangeVarNodes_walker. A callback - * returns a boolean value indicating if given node should be skipped from - * further processing by ChangeVarNodes_walker. The callback is called - * only for expressions and other children nodes of a Query processed by - * a walker. Initial processing of the root Query doesn't involve the - * callback. + * ChangeVarNodes changes a given node and all of its underlying nodes. This + * version of function additionally takes a callback, which has a chance to + * process a node before ChangeVarNodes_walker. A callback returns a boolean + * value indicating if the given node should be skipped from further processing + * by ChangeVarNodes_walker. The callback is called only for expressions and + * other children nodes of a Query processed by a walker. Initial processing + * of the root Query doesn't involve the callback. */ void ChangeVarNodesExtended(Node *node, int rt_index, int new_index, -- 2.39.5