From bc41e7b94f50ea45f559032292d77e9dc31fe486 Mon Sep 17 00:00:00 2001 From: Colm Date: Thu, 6 Nov 2025 12:31:43 +0000 Subject: [PATCH] PG18: fix query results diff in merge regress test. (#8323) The `merge` regress test uses SQL functions which can be cached in PG18+ since commit [0dca5d68d](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=0dca5d68d7bebf2c1036fd84875533afef6df992). Distributed plan's copy function did not include the `sourceResultRepartitionColumnIndex` field, which is critical for MERGE queries, and for cached distributed plans this field was always 0 leading to the problem (#8285). Ensuring it is copied fixes it. This was an oversight in Citus, and not specific to PG18. --- 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); }