diff --git a/src/backend/cdb/cdbplan.c b/src/backend/cdb/cdbplan.c index 233eb0e038313efcb85ead643f87a0ca94661354..abb4b99b36b06cbe6790c4444496865d66c596fb 100644 --- a/src/backend/cdb/cdbplan.c +++ b/src/backend/cdb/cdbplan.c @@ -845,7 +845,12 @@ plan_tree_mutator(Node *node, SCANMUTATE(newfdwscan, fdwscan); MUTATE(newfdwscan->fdw_exprs, fdwscan->fdw_exprs, List *); - MUTATE(newfdwscan->fdw_private, fdwscan->fdw_private, List *); + + /* + * Don't mutate fdw_private, it's private to the FDW. Must make + * a copy of it, though. + */ + newfdwscan->fdw_private = copyObject(fdwscan->fdw_private); newfdwscan->fsSystemCol = fdwscan->fsSystemCol; return (Node *) newfdwscan;