From 2e068db56e31dfb510fe7416e52b7affe26f278f Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Fri, 19 Apr 2024 09:40:20 +0100 Subject: [PATCH] Use macro NUM_MERGE_MATCH_KINDS instead of '3' in MERGE code. Code quality improvement for 0294df2f1f84. Aleksander Alekseev, reviewed by Richard Guo. Discussion: https://postgr.es/m/CAJ7c6TMsiaV5urU_Pq6zJ2tXPDwk69-NKVh4AMN5XrRiM7N%2BGA%40mail.gmail.com --- src/backend/optimizer/prep/prepjointree.c | 2 +- src/backend/parser/parse_merge.c | 2 +- src/include/nodes/execnodes.h | 2 +- src/include/nodes/primnodes.h | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c index fb768ad52c..41da670f15 100644 --- a/src/backend/optimizer/prep/prepjointree.c +++ b/src/backend/optimizer/prep/prepjointree.c @@ -153,7 +153,7 @@ transform_MERGE_to_join(Query *parse) { RangeTblEntry *joinrte; JoinExpr *joinexpr; - bool have_action[3]; + bool have_action[NUM_MERGE_MATCH_KINDS]; JoinType jointype; int joinrti; List *vars; diff --git a/src/backend/parser/parse_merge.c b/src/backend/parser/parse_merge.c index bce11d5956..87df79027d 100644 --- a/src/backend/parser/parse_merge.c +++ b/src/backend/parser/parse_merge.c @@ -109,7 +109,7 @@ transformMergeStmt(ParseState *pstate, MergeStmt *stmt) Query *qry = makeNode(Query); ListCell *l; AclMode targetPerms = ACL_NO_RIGHTS; - bool is_terminal[3]; + bool is_terminal[NUM_MERGE_MATCH_KINDS]; Index sourceRTI; List *mergeActionList; ParseNamespaceItem *nsitem; diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index fa2f70b7a4..c1a65bad2a 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -545,7 +545,7 @@ typedef struct ResultRelInfo OnConflictSetState *ri_onConflict; /* for MERGE, lists of MergeActionState (one per MergeMatchKind) */ - List *ri_MergeActions[3]; + List *ri_MergeActions[NUM_MERGE_MATCH_KINDS]; /* for MERGE, expr state for checking the join condition */ ExprState *ri_MergeJoinCondition; diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h index 719c4b7b61..247cecb4b4 100644 --- a/src/include/nodes/primnodes.h +++ b/src/include/nodes/primnodes.h @@ -1970,6 +1970,8 @@ typedef enum MergeMatchKind MERGE_WHEN_NOT_MATCHED_BY_TARGET } MergeMatchKind; +#define NUM_MERGE_MATCH_KINDS (MERGE_WHEN_NOT_MATCHED_BY_TARGET + 1) + typedef struct MergeAction { NodeTag type;