v2-0001-Replace-constant-3-with-NUM_MERGE_MATCH_KINDS.patch

application/octet-stream

Filename: v2-0001-Replace-constant-3-with-NUM_MERGE_MATCH_KINDS.patch
Type: application/octet-stream
Part: 0
Message: Re: [PATCH] Replace magic constant 3 with NUM_MERGE_MATCH_KINDS

Patch

Format: format-patch
Series: patch v2-0001
Subject: Replace constant 3 with NUM_MERGE_MATCH_KINDS
File+
src/backend/optimizer/prep/prepjointree.c 1 1
src/backend/parser/parse_merge.c 1 1
src/include/nodes/execnodes.h 1 1
src/include/nodes/primnodes.h 2 0
From c54e8f557098a5488e048336715a7f89ddabf93c Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Tue, 16 Apr 2024 12:37:51 +0300
Subject: [PATCH v2] Replace constant 3 with NUM_MERGE_MATCH_KINDS

Oversight of 0294df2f1f84.

Aleksander Alekseev, reviewed by Dean Rasheed, Richard Guo
Discussion: https://postgr.es/m/CAJ7c6TMsiaV5urU_Pq6zJ2tXPDwk69-NKVh4AMN5XrRiM7N+GA@mail.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 0052c1f0ee..8fbbc6984a 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;
-- 
2.44.0