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