]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix comments for ChangeVarNodes() and related functions
authorRichard Guo <rguo@postgresql.org>
Wed, 5 Nov 2025 03:29:31 +0000 (12:29 +0900)
committerRichard Guo <rguo@postgresql.org>
Wed, 5 Nov 2025 03:29:31 +0000 (12:29 +0900)
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 <guofenglinux@gmail.com>
Discussion: https://postgr.es/m/CAMbWs480j16HC1JtjKCgj5WshivT8ZJYkOfTyZAM0POjFomJkg@mail.gmail.com
Backpatch-through: 18

src/backend/optimizer/plan/analyzejoins.c
src/backend/rewrite/rewriteManip.c

index 6a3c030e8efb1d2468c4ce74fe2e16ead08a52fa..e592e1ac3d127643ff45172c98ba859f754a6119 100644 (file)
@@ -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))
index cd786aa4112b51d5f7ee4bfd93ce02ed7c72f0a0..0fcd1fbd14ef140c1aecb025b55538fef8071d0e 100644 (file)
@@ -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,