aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDean Rasheed <dean.a.rasheed@gmail.com>2024-04-19 09:40:20 +0100
committerDean Rasheed <dean.a.rasheed@gmail.com>2024-04-19 09:40:20 +0100
commit2e068db56e31dfb510fe7416e52b7affe26f278f (patch)
tree92b4ff3bf7484da1e90108bc354574e60d88bb1d
parentf6e845133630fe08acf7ad640f6d8443f13b134a (diff)
downloadpostgresql-2e068db56e31dfb510fe7416e52b7affe26f278f.tar.gz
postgresql-2e068db56e31dfb510fe7416e52b7affe26f278f.zip
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
-rw-r--r--src/backend/optimizer/prep/prepjointree.c2
-rw-r--r--src/backend/parser/parse_merge.c2
-rw-r--r--src/include/nodes/execnodes.h2
-rw-r--r--src/include/nodes/primnodes.h2
4 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c
index fb768ad52c2..41da670f150 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 bce11d59561..87df79027d7 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 fa2f70b7a48..c1a65bad2a9 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 719c4b7b615..247cecb4b45 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;