From 49f7bffcf6d8173e87038c799a8cbb8ec1b3dc63 Mon Sep 17 00:00:00 2001 From: naisila Date: Wed, 10 Jul 2024 14:23:17 +0200 Subject: [PATCH] MergeAction can have 3 merge kinds (now enum) in PG17, write compat Relevant PG commit: 0294df2f1f842dfb0eed79007b21016f486a3c6c https://github.com/postgres/postgres/commit/0294df2f1f842dfb0eed79007b21016f486a3c6c --- src/backend/distributed/planner/merge_planner.c | 2 +- src/include/pg_version_compat.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/planner/merge_planner.c b/src/backend/distributed/planner/merge_planner.c index 66eaf71da..8048002e0 100644 --- a/src/backend/distributed/planner/merge_planner.c +++ b/src/backend/distributed/planner/merge_planner.c @@ -1475,7 +1475,7 @@ FetchAndValidateInsertVarIfExists(Oid targetRelationId, Query *query) foreach_declared_ptr(action, query->mergeActionList) { /* Skip MATCHED clause as INSERTS are not allowed in it */ - if (action->matched) + if (matched_compat(action)) { continue; } diff --git a/src/include/pg_version_compat.h b/src/include/pg_version_compat.h index c47c38200..4a835176c 100644 --- a/src/include/pg_version_compat.h +++ b/src/include/pg_version_compat.h @@ -101,6 +101,9 @@ getStxstattarget_compat(HeapTuple tup) #define WaitEventSetTracker_compat CurrentResourceOwner #define identitySequenceRelation_compat(a) (a) + +#define matched_compat(a) (a->matchKind == MERGE_WHEN_MATCHED) + #else #include "access/htup_details.h" @@ -126,6 +129,8 @@ getStxstattarget_compat(HeapTuple tup) #define identitySequenceRelation_compat(a) (RelationGetRelid(a)) +#define matched_compat(a) (a->matched) + #endif #if PG_VERSION_NUM >= PG_VERSION_16