From 43156e067401d01c90f212259de7286769ee521d Mon Sep 17 00:00:00 2001 From: Colm McHugh Date: Wed, 5 Nov 2025 12:51:10 +0000 Subject: [PATCH] PG18: fix query results diff in merge regress test. The test used SQL functions which can be cached in PG18+ since commit 0dca5d68d. This means that a Citus distributed plan can be cached, but the copy function for a distributed plan did not include the `sourceResultRepartitionColumnIndex` field, which is critical for MERGE queries. Including it fixes the diff problem. Also update `OutDistributedPlan()` function so that the field is picked up by `nodeToString()`. --- src/backend/distributed/utils/citus_copyfuncs.c | 2 ++ src/backend/distributed/utils/citus_outfuncs.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/backend/distributed/utils/citus_copyfuncs.c b/src/backend/distributed/utils/citus_copyfuncs.c index aca376df9..6eeaf964f 100644 --- a/src/backend/distributed/utils/citus_copyfuncs.c +++ b/src/backend/distributed/utils/citus_copyfuncs.c @@ -137,6 +137,8 @@ CopyNodeDistributedPlan(COPYFUNC_ARGS) COPY_SCALAR_FIELD(fastPathRouterPlan); COPY_SCALAR_FIELD(numberOfTimesExecuted); COPY_NODE_FIELD(planningError); + + COPY_SCALAR_FIELD(sourceResultRepartitionColumnIndex); } diff --git a/src/backend/distributed/utils/citus_outfuncs.c b/src/backend/distributed/utils/citus_outfuncs.c index c19b0c3d4..edf4731a6 100644 --- a/src/backend/distributed/utils/citus_outfuncs.c +++ b/src/backend/distributed/utils/citus_outfuncs.c @@ -203,6 +203,7 @@ OutDistributedPlan(OUTFUNC_ARGS) WRITE_UINT_FIELD(numberOfTimesExecuted); WRITE_NODE_FIELD(planningError); + WRITE_INT_FIELD(sourceResultRepartitionColumnIndex); }