Refactor comments and formatting in insert_select_planner.c for clarity and consistency

mehmet/issue_7784
Mehmet Yilmaz 2025-04-14 15:53:37 +00:00
parent 93ab49702d
commit ac0084eb92
1 changed files with 48 additions and 50 deletions

View File

@ -110,9 +110,9 @@ static void ProcessEntryPair(TargetEntry *insertEntry, TargetEntry *selectEntry,
/* /*
* DecrementCteLevelWalkerContext * DecrementCteLevelWalkerContext
* *
* 'offset' is how much we shift ctelevelsup by (e.g. -1), * 'offset' is how much we shift ctelevelsup by (e.g. -1),
* 'level' tracks the current query nesting level, * 'level' tracks the current query nesting level,
* so we know if RTE_CTE is referencing this level. * so we know if RTE_CTE is referencing this level.
*/ */
typedef struct DecrementCteLevelWalkerContext typedef struct DecrementCteLevelWalkerContext
@ -122,10 +122,8 @@ typedef struct DecrementCteLevelWalkerContext
} DecrementCteLevelWalkerContext; } DecrementCteLevelWalkerContext;
static void static void DecrementCteLevelForQuery(Query *query, int oldLevel, int newLevel);
DecrementCteLevelForQuery(Query *query, int oldLevel, int newLevel); static bool DecrementCteLevelWalker(Node *node, DecrementCteLevelWalkerContext *context);
static bool
DecrementCteLevelWalker(Node *node, DecrementCteLevelWalkerContext *context);
/* depth of current insert/select planner. */ /* depth of current insert/select planner. */
static int insertSelectPlannerLevel = 0; static int insertSelectPlannerLevel = 0;
@ -555,9 +553,9 @@ PrepareInsertSelectForCitusPlanner(Query *insertSelectQuery)
if (list_length(insertSelectQuery->cteList) > 0) if (list_length(insertSelectQuery->cteList) > 0)
{ {
/* we physically unify ctes from top-level into subquery, /* we physically unify ctes from top-level into subquery,
* then want references in the subquery from ctelevelsup=1 => 0 * then want references in the subquery from ctelevelsup=1 => 0
*/ */
elog(DEBUG1, "Unifying top-level cteList with subquery cteList"); elog(DEBUG1, "Unifying top-level cteList with subquery cteList");
selectRte->subquery->cteList = selectRte->subquery->cteList =
@ -568,53 +566,55 @@ PrepareInsertSelectForCitusPlanner(Query *insertSelectQuery)
DecrementCteLevelForQuery(selectRte->subquery, 1, 0); DecrementCteLevelForQuery(selectRte->subquery, 1, 0);
elog(DEBUG1, "Done shifting ctelevelsup 1->0 for subquery references"); elog(DEBUG1, "Done shifting ctelevelsup 1->0 for subquery references");
} }
} }
/* /*
* DecrementCteLevelWalker * DecrementCteLevelWalker
* *
*/ */
static bool static bool
DecrementCteLevelWalker(Node *node, DecrementCteLevelWalkerContext *context) DecrementCteLevelWalker(Node *node, DecrementCteLevelWalkerContext *context)
{ {
if (node == NULL) if (node == NULL)
return false; {
return false;
}
if (IsA(node, RangeTblEntry)) if (IsA(node, RangeTblEntry))
{ {
RangeTblEntry *rte = (RangeTblEntry *) node; RangeTblEntry *rte = (RangeTblEntry *) node;
if (rte->rtekind == RTE_CTE && rte->ctelevelsup == context->oldLevel) if (rte->rtekind == RTE_CTE && rte->ctelevelsup == context->oldLevel)
{ {
rte->ctelevelsup = context->newLevel; rte->ctelevelsup = context->newLevel;
} }
return false; return false;
} }
else if (IsA(node, Query)) else if (IsA(node, Query))
{ {
Query *query = (Query *) node; Query *query = (Query *) node;
/* /*
* Use QTW_EXAMINE_RTES_BEFORE so that this walker is called * Use QTW_EXAMINE_RTES_BEFORE so that this walker is called
* on each RangeTblEntry in query->rtable, giving us a chance * on each RangeTblEntry in query->rtable, giving us a chance
* to adjust ctelevelsup before we do the rest of the query tree. * to adjust ctelevelsup before we do the rest of the query tree.
*/ */
query_tree_walker(query, query_tree_walker(query,
DecrementCteLevelWalker, DecrementCteLevelWalker,
(void *) context, (void *) context,
QTW_EXAMINE_RTES_BEFORE); QTW_EXAMINE_RTES_BEFORE);
return false; return false;
} }
else else
{ {
/* fallback for expression nodes, etc. */ /* fallback for expression nodes, etc. */
return expression_tree_walker(node, return expression_tree_walker(node,
DecrementCteLevelWalker, DecrementCteLevelWalker,
(void *) context); (void *) context);
} }
} }
@ -624,20 +624,18 @@ DecrementCteLevelWalker(Node *node, DecrementCteLevelWalkerContext *context)
static void static void
DecrementCteLevelForQuery(Query *query, int oldLevel, int newLevel) DecrementCteLevelForQuery(Query *query, int oldLevel, int newLevel)
{ {
DecrementCteLevelWalkerContext ctx; DecrementCteLevelWalkerContext ctx;
ctx.oldLevel = oldLevel; ctx.oldLevel = oldLevel;
ctx.newLevel = newLevel; ctx.newLevel = newLevel;
query_tree_walker(query, query_tree_walker(query,
DecrementCteLevelWalker, DecrementCteLevelWalker,
(void *) &ctx, (void *) &ctx,
QTW_EXAMINE_RTES_BEFORE); QTW_EXAMINE_RTES_BEFORE);
} }
/* /*
* CreateCombineQueryForRouterPlan is used for creating a dummy combineQuery * CreateCombineQueryForRouterPlan is used for creating a dummy combineQuery
* for a router plan, since router plans normally don't have one. * for a router plan, since router plans normally don't have one.