You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by ch...@apache.org on 2025/07/21 02:54:01 UTC

(cloudberry) branch cbdb-postgres-merge updated: Fix some conflicts for executor

This is an automated email from the ASF dual-hosted git repository.

chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/cbdb-postgres-merge by this push:
     new 1eb1623cf57 Fix some conflicts for executor
1eb1623cf57 is described below

commit 1eb1623cf57fc8bd26fc3c6776b56fb28f846187
Author: Jinbao Chen <ch...@gmail.com>
AuthorDate: Mon Jul 21 10:53:48 2025 +0800

    Fix some conflicts for executor
---
 src/backend/executor/Makefile              |   3 -
 src/backend/executor/execAmi.c             |   3 -
 src/backend/executor/execExpr.c            |  18 -----
 src/backend/executor/execIndexing.c        |   3 -
 src/backend/executor/execPartition.c       |  32 +++------
 src/backend/executor/execProcnode.c        |  10 ---
 src/backend/executor/instrument.c          |   4 --
 src/backend/executor/nodeAppend.c          |  55 +++------------
 src/backend/executor/nodeBitmapIndexscan.c |   4 --
 src/backend/executor/nodeFunctionscan.c    |   4 --
 src/backend/executor/nodeIndexonlyscan.c   |  12 ----
 src/backend/executor/nodeIndexscan.c       |   3 -
 src/backend/executor/nodeLimit.c           |   4 --
 src/backend/executor/nodeMaterial.c        |   4 --
 src/backend/executor/nodeMemoize.c         | 106 +----------------------------
 src/backend/executor/nodeMergeAppend.c     |   5 +-
 src/backend/executor/nodeMergejoin.c       |   4 --
 src/backend/executor/nodeNestloop.c        |   4 --
 src/backend/executor/nodeResult.c          |   4 --
 src/backend/executor/nodeSeqscan.c         |   8 +--
 src/backend/executor/nodeSort.c            |  36 ++--------
 src/backend/executor/nodeSubplan.c         |   7 --
 src/backend/executor/nodeSubqueryscan.c    |   4 --
 src/backend/executor/nodeValuesscan.c      |   4 --
 src/backend/executor/spi.c                 |  62 -----------------
 25 files changed, 27 insertions(+), 376 deletions(-)

diff --git a/src/backend/executor/Makefile b/src/backend/executor/Makefile
index 4dab48bd024..168a246c81b 100644
--- a/src/backend/executor/Makefile
+++ b/src/backend/executor/Makefile
@@ -64,10 +64,7 @@ OBJS = \
 	nodeProjectSet.o \
 	nodeRecursiveunion.o \
 	nodeResult.o \
-<<<<<<< HEAD
 	nodeRuntimeFilter.o \
-=======
->>>>>>> REL_16_9
 	nodeSamplescan.o \
 	nodeSeqscan.o \
 	nodeSetOp.o \
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 59bf1700c77..ac2c65f6b02 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -48,10 +48,7 @@
 #include "executor/nodeProjectSet.h"
 #include "executor/nodeRecursiveunion.h"
 #include "executor/nodeResult.h"
-<<<<<<< HEAD
 #include "executor/nodeRuntimeFilter.h"
-=======
->>>>>>> REL_16_9
 #include "executor/nodeSamplescan.h"
 #include "executor/nodeSeqscan.h"
 #include "executor/nodeSetOp.h"
diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index aafb25e4997..3de64637906 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -3727,12 +3727,7 @@ ExecBuildAggTrans(AggState *aggstate, AggStatePerPhase phase,
 	ExprState  *state = makeNode(ExprState);
 	PlanState  *parent = &aggstate->ss.ps;
 	ExprEvalStep scratch = {0};
-<<<<<<< HEAD
 	LastAttnumInfo deform = {0, 0, 0};
-=======
-	bool		isCombine = DO_AGGSPLIT_COMBINE(aggstate->aggsplit);
-	ExprSetupInfo deform = {0, 0, 0, NIL};
->>>>>>> REL_16_9
 
 	state->expr = (Expr *) aggstate;
 	state->parent = parent;
@@ -3748,7 +3743,6 @@ ExecBuildAggTrans(AggState *aggstate, AggStatePerPhase phase,
 	{
 		AggStatePerTrans pertrans = &aggstate->pertrans[transno];
 
-<<<<<<< HEAD
 		if (!bms_is_member(transno, aggstate->aggs_used))
 			continue;
 		get_last_attnums_walker((Node *) pertrans->aggref->aggdirectargs,
@@ -3765,18 +3759,6 @@ ExecBuildAggTrans(AggState *aggstate, AggStatePerPhase phase,
 		if (aggstate->AggExprId_AttrNum > 0)
 			deform.last_outer = Max(deform.last_outer,
 									aggstate->AggExprId_AttrNum);
-=======
-		expr_setup_walker((Node *) pertrans->aggref->aggdirectargs,
-						  &deform);
-		expr_setup_walker((Node *) pertrans->aggref->args,
-						  &deform);
-		expr_setup_walker((Node *) pertrans->aggref->aggorder,
-						  &deform);
-		expr_setup_walker((Node *) pertrans->aggref->aggdistinct,
-						  &deform);
-		expr_setup_walker((Node *) pertrans->aggref->aggfilter,
-						  &deform);
->>>>>>> REL_16_9
 	}
 	ExecPushExprSetupSteps(state, &deform);
 
diff --git a/src/backend/executor/execIndexing.c b/src/backend/executor/execIndexing.c
index 80d36e5135d..156e8d2b8a9 100644
--- a/src/backend/executor/execIndexing.c
+++ b/src/backend/executor/execIndexing.c
@@ -950,8 +950,6 @@ index_recheck_constraint(Relation index, Oid *constr_procs,
 
 	return true;
 }
-<<<<<<< HEAD
-=======
 
 /*
  * Check if ExecInsertIndexTuples() should pass indexUnchanged hint.
@@ -1098,4 +1096,3 @@ index_expression_changed_walker(Node *node, Bitmapset *allUpdatedCols)
 	return expression_tree_walker(node, index_expression_changed_walker,
 								  (void *) allUpdatedCols);
 }
->>>>>>> REL_16_9
diff --git a/src/backend/executor/execPartition.c b/src/backend/executor/execPartition.c
index e162034d24b..01e1dbffd05 100644
--- a/src/backend/executor/execPartition.c
+++ b/src/backend/executor/execPartition.c
@@ -930,15 +930,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate,
 		lappend(estate->es_tuple_routing_result_relations,
 				leaf_part_rri);
 
-<<<<<<< HEAD
-	if (RelationIsAoRows(leaf_part_rri->ri_RelationDesc))
-		appendonly_dml_init(leaf_part_rri->ri_RelationDesc, mtstate->operation);
-	else if (RelationIsAoCols(leaf_part_rri->ri_RelationDesc))
-		aoco_dml_init(leaf_part_rri->ri_RelationDesc, mtstate->operation);
-	else if (ext_dml_init_hook)
-		ext_dml_init_hook(leaf_part_rri->ri_RelationDesc, mtstate->operation);
-
-=======
 	/*
 	 * Initialize information about this partition that's needed to handle
 	 * MERGE.  We take the "first" result relation's mergeActionList as
@@ -1035,7 +1026,14 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate,
 				ExecInitQual((List *) action->qual, &mtstate->ps);
 		}
 	}
->>>>>>> REL_16_9
+
+	if (RelationIsAoRows(leaf_part_rri->ri_RelationDesc))
+		appendonly_dml_init(leaf_part_rri->ri_RelationDesc, mtstate->operation);
+	else if (RelationIsAoCols(leaf_part_rri->ri_RelationDesc))
+		aoco_dml_init(leaf_part_rri->ri_RelationDesc, mtstate->operation);
+	else if (ext_dml_init_hook)
+		ext_dml_init_hook(leaf_part_rri->ri_RelationDesc, mtstate->operation);
+
 	MemoryContextSwitchTo(oldcxt);
 
 	return leaf_part_rri;
@@ -1479,11 +1477,8 @@ get_partition_for_tuple(PartitionKey key, PartitionDesc partdesc, Datum *values,
 	int			part_index = -1;
 	PartitionBoundInfo boundinfo = partdesc->boundinfo;
 
-<<<<<<< HEAD
 	if (partdesc->nparts == 0)
 		return part_index;
-=======
->>>>>>> REL_16_9
 	/*
 	 * In the switch statement below, when we perform a cached lookup for
 	 * RANGE and LIST partitioned tables, if we find that the last found
@@ -2401,7 +2396,6 @@ ExecAddMatchingSubPlans(PartitionPruneState *prunestate, Bitmapset *result)
  *		Determine which subplans match the pruning steps detailed in
  *		'prunestate' for the current comparison expression values.
  *
-<<<<<<< HEAD
  * Here we assume we may evaluate PARAM_EXEC Params.
  *
  * GPDB: 'join_prune_paramids' can contain a list of PARAM_EXEC Param IDs
@@ -2410,17 +2404,9 @@ ExecAddMatchingSubPlans(PartitionPruneState *prunestate, Bitmapset *result)
  */
 Bitmapset *
 ExecFindMatchingSubPlans(PartitionPruneState *prunestate,
+						 bool initial_prune,
 						 EState *estate,
 						 int nplans, List *join_prune_paramids)
-=======
- * Pass initial_prune if PARAM_EXEC Params cannot yet be evaluated.  This
- * differentiates the initial executor-time pruning step from later
- * runtime pruning.
- */
-Bitmapset *
-ExecFindMatchingSubPlans(PartitionPruneState *prunestate,
-						 bool initial_prune)
->>>>>>> REL_16_9
 {
 	Bitmapset  *result = NULL;
 	MemoryContext oldcontext;
diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c
index d0cfdfd2504..1cd50ffca21 100644
--- a/src/backend/executor/execProcnode.c
+++ b/src/backend/executor/execProcnode.c
@@ -7,13 +7,9 @@
  *	 ExecProcNode, or ExecEndNode on its subnodes and do the appropriate
  *	 processing.
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
@@ -111,10 +107,7 @@
 #include "executor/nodeProjectSet.h"
 #include "executor/nodeRecursiveunion.h"
 #include "executor/nodeResult.h"
-<<<<<<< HEAD
 #include "executor/nodeRuntimeFilter.h"
-=======
->>>>>>> REL_16_9
 #include "executor/nodeSamplescan.h"
 #include "executor/nodeSeqscan.h"
 #include "executor/nodeSetOp.h"
@@ -175,12 +168,9 @@ static CdbVisitOpt planstate_walk_kids(PlanState *planstate,
 static TupleTableSlot *ExecProcNodeFirst(PlanState *node);
 #if 0
 static TupleTableSlot *ExecProcNodeInstr(PlanState *node);
-<<<<<<< HEAD
 #endif
 static TupleTableSlot *ExecProcNodeGPDB(PlanState *node);
-=======
 static bool ExecShutdownNode_walker(PlanState *node, void *context);
->>>>>>> REL_16_9
 
 
 /* ------------------------------------------------------------------------
diff --git a/src/backend/executor/instrument.c b/src/backend/executor/instrument.c
index a67a1531b4a..3fd39dfb167 100644
--- a/src/backend/executor/instrument.c
+++ b/src/backend/executor/instrument.c
@@ -4,13 +4,9 @@
  *	 functions for instrumentation of plan execution
  *
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2006-2009, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Copyright (c) 2001-2021, PostgreSQL Global Development Group
-=======
  * Copyright (c) 2001-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  *
  * IDENTIFICATION
  *	  src/backend/executor/instrument.c
diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c
index e439813ffec..54c8a4687b7 100644
--- a/src/backend/executor/nodeAppend.c
+++ b/src/backend/executor/nodeAppend.c
@@ -585,22 +585,14 @@ choose_next_subplan_locally(AppendState *node)
 			/* We'd have filled as_valid_subplans already */
 			Assert(node->as_valid_subplans_identified);
 		}
-<<<<<<< HEAD
-		else if (node->as_valid_subplans == NULL)
+		else if (!node->as_valid_subplans_identified)
 		{
-			Append	   *plan = (Append *) node->ps.plan;
 			node->as_valid_subplans =
-				ExecFindMatchingSubPlans(node->as_prune_state,
+				ExecFindMatchingSubPlans(node->as_prune_state, false,
 										 node->ps.state,
 										 list_length(plan->appendplans),
 										 plan->join_prune_paramids);
-=======
-		else if (!node->as_valid_subplans_identified)
-		{
-			node->as_valid_subplans =
-				ExecFindMatchingSubPlans(node->as_prune_state, false);
 			node->as_valid_subplans_identified = true;
->>>>>>> REL_16_9
 		}
 
 		whichplan = -1;
@@ -668,15 +660,11 @@ choose_next_subplan_for_leader(AppendState *node)
 			Append	   *plan = (Append *) node->ps.plan;
 
 			node->as_valid_subplans =
-<<<<<<< HEAD
-				ExecFindMatchingSubPlans(node->as_prune_state,
+				ExecFindMatchingSubPlans(node->as_prune_state, false,
 										 node->ps.state,
 										 list_length(plan->appendplans),
 										 plan->join_prune_paramids);
-=======
-				ExecFindMatchingSubPlans(node->as_prune_state, false);
 			node->as_valid_subplans_identified = true;
->>>>>>> REL_16_9
 
 			/*
 			 * Mark each invalid plan as finished to allow the loop below to
@@ -753,16 +741,12 @@ choose_next_subplan_for_worker(AppendState *node)
 		Append	   *plan = (Append *) node->ps.plan;
 
 		node->as_valid_subplans =
-<<<<<<< HEAD
-			ExecFindMatchingSubPlans(node->as_prune_state,
+			ExecFindMatchingSubPlans(node->as_prune_state, false,
 									 node->ps.state,
 									 list_length(plan->appendplans),
 									 plan->join_prune_paramids);
-=======
-			ExecFindMatchingSubPlans(node->as_prune_state, false);
 		node->as_valid_subplans_identified = true;
 
->>>>>>> REL_16_9
 		mark_invalid_subplans_as_finished(node);
 	}
 
@@ -925,15 +909,11 @@ ExecAppendAsyncBegin(AppendState *node)
 	{
 		Append	*plan = (Append *) node->ps.plan;
 		node->as_valid_subplans =
-<<<<<<< HEAD
-			ExecFindMatchingSubPlans(node->as_prune_state,
-										 node->ps.state,
-										 list_length(plan->appendplans),
-										 plan->join_prune_paramids);
-=======
-			ExecFindMatchingSubPlans(node->as_prune_state, false);
+			ExecFindMatchingSubPlans(node->as_prune_state, false,
+									 node->ps.state,
+									 list_length(plan->appendplans),
+									 plan->join_prune_paramids);
 		node->as_valid_subplans_identified = true;
->>>>>>> REL_16_9
 
 		classify_matching_subplans(node);
 	}
@@ -1134,7 +1114,6 @@ ExecAppendAsyncEventWait(AppendState *node)
 										 WAIT_EVENT_APPEND_READY);
 		}
 	}
-<<<<<<< HEAD
 
 	/*
 	 * No need for further processing if there are no configured events other
@@ -1159,14 +1138,6 @@ ExecAppendAsyncEventWait(AppendState *node)
 								 nevents, WAIT_EVENT_APPEND_READY);
 	FreeWaitEventSet(node->as_eventset);
 	node->as_eventset = NULL;
-=======
-	PG_FINALLY();
-	{
-		FreeWaitEventSet(node->as_eventset);
-		node->as_eventset = NULL;
-	}
-	PG_END_TRY();
->>>>>>> REL_16_9
 	if (noccurred == 0)
 		return;
 
@@ -1195,16 +1166,6 @@ ExecAppendAsyncEventWait(AppendState *node)
 				/* Do the actual work. */
 				ExecAsyncNotify(areq);
 			}
-<<<<<<< HEAD
-=======
-		}
-
-		/* Handle standard interrupts */
-		if ((w->events & WL_LATCH_SET) != 0)
-		{
-			ResetLatch(MyLatch);
-			CHECK_FOR_INTERRUPTS();
->>>>>>> REL_16_9
 		}
 	}
 }
diff --git a/src/backend/executor/nodeBitmapIndexscan.c b/src/backend/executor/nodeBitmapIndexscan.c
index 962909b3c62..9d258a5f7e2 100644
--- a/src/backend/executor/nodeBitmapIndexscan.c
+++ b/src/backend/executor/nodeBitmapIndexscan.c
@@ -3,13 +3,9 @@
  * nodeBitmapIndexscan.c
  *	  Routines to support bitmapped index scans of relations
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2007-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeFunctionscan.c b/src/backend/executor/nodeFunctionscan.c
index 0f80fa9ac78..cf779565628 100644
--- a/src/backend/executor/nodeFunctionscan.c
+++ b/src/backend/executor/nodeFunctionscan.c
@@ -3,13 +3,9 @@
  * nodeFunctionscan.c
  *	  Support routines for scanning RangeFunctions (functions in rangetable).
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2006-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeIndexonlyscan.c b/src/backend/executor/nodeIndexonlyscan.c
index 6905a2c448c..da047413c0b 100644
--- a/src/backend/executor/nodeIndexonlyscan.c
+++ b/src/backend/executor/nodeIndexonlyscan.c
@@ -35,11 +35,8 @@
 #include "access/tableam.h"
 #include "access/tupdesc.h"
 #include "access/visibilitymap.h"
-<<<<<<< HEAD
 #include "cdb/cdbvars.h"
-=======
 #include "catalog/pg_type.h"
->>>>>>> REL_16_9
 #include "executor/execdebug.h"
 #include "executor/nodeIndexonlyscan.h"
 #include "executor/nodeIndexscan.h"
@@ -527,7 +524,6 @@ IndexOnlyScanState *
 ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags)
 {
 	Relation	currentRelation;
-<<<<<<< HEAD
 
 	/*
 	 * open the scan relation
@@ -543,9 +539,6 @@ ExecInitIndexOnlyScanForPartition(IndexOnlyScan *node, EState *estate, int eflag
 								  Relation currentRelation, Oid indexid)
 {
 	IndexOnlyScanState *indexstate;
-=======
-	Relation	indexRelation;
->>>>>>> REL_16_9
 	LOCKMODE	lockmode;
 	TupleDesc	tupDesc;
 	int			indnkeyatts;
@@ -617,12 +610,7 @@ ExecInitIndexOnlyScanForPartition(IndexOnlyScan *node, EState *estate, int eflag
 
 	/* Open the index relation. */
 	lockmode = exec_rt_fetch(node->scan.scanrelid, estate)->rellockmode;
-<<<<<<< HEAD
 	indexstate->ioss_RelationDesc = index_open(indexid, lockmode);
-=======
-	indexRelation = index_open(node->indexid, lockmode);
-	indexstate->ioss_RelationDesc = indexRelation;
->>>>>>> REL_16_9
 
 	/*
 	 * Initialize index-specific scan state
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index 7b11cd2d6ea..99798ea8158 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -574,10 +574,7 @@ ExecReScanIndexScan(IndexScanState *node)
 	if (node->iss_ReorderQueue)
 	{
 		HeapTuple	tuple;
-<<<<<<< HEAD
-=======
 
->>>>>>> REL_16_9
 		while (!pairingheap_is_empty(node->iss_ReorderQueue))
 		{
 			tuple = reorderqueue_pop(node);
diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c
index 29d2e6bd506..73068c2f28d 100644
--- a/src/backend/executor/nodeLimit.c
+++ b/src/backend/executor/nodeLimit.c
@@ -3,13 +3,9 @@
  * nodeLimit.c
  *	  Routines to handle limiting of query results where appropriate
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeMaterial.c b/src/backend/executor/nodeMaterial.c
index da1cf5b1f24..5123a7897cb 100644
--- a/src/backend/executor/nodeMaterial.c
+++ b/src/backend/executor/nodeMaterial.c
@@ -3,13 +3,9 @@
  * nodeMaterial.c
  *	  Routines to handle materialization nodes.
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeMemoize.c b/src/backend/executor/nodeMemoize.c
index e485a9107a8..27234ebaa11 100644
--- a/src/backend/executor/nodeMemoize.c
+++ b/src/backend/executor/nodeMemoize.c
@@ -115,13 +115,8 @@ typedef struct MemoizeKey
 typedef struct MemoizeEntry
 {
 	MemoizeKey *key;			/* Hash key for hash table lookups */
-<<<<<<< HEAD
-	MemoizeTuple *tuplehead;	/* Pointer to the first tuple or NULL if
-								 * no tuples are cached for this entry */
-=======
 	MemoizeTuple *tuplehead;	/* Pointer to the first tuple or NULL if no
 								 * tuples are cached for this entry */
->>>>>>> REL_16_9
 	uint32		hash;			/* Hash value (cached) */
 	char		status;			/* Hash status */
 	bool		complete;		/* Did we read the outer plan to completion? */
@@ -138,13 +133,8 @@ typedef struct MemoizeEntry
 static uint32 MemoizeHash_hash(struct memoize_hash *tb,
 							   const MemoizeKey *key);
 static bool MemoizeHash_equal(struct memoize_hash *tb,
-<<<<<<< HEAD
-							  const MemoizeKey *params1,
-							  const MemoizeKey *params2);
-=======
 							  const MemoizeKey *key1,
 							  const MemoizeKey *key2);
->>>>>>> REL_16_9
 
 #define SH_PREFIX memoize
 #define SH_ELEMENT_TYPE MemoizeEntry
@@ -168,31 +158,16 @@ static uint32
 MemoizeHash_hash(struct memoize_hash *tb, const MemoizeKey *key)
 {
 	MemoizeState *mstate = (MemoizeState *) tb->private_data;
-<<<<<<< HEAD
-=======
-	ExprContext *econtext = mstate->ss.ps.ps_ExprContext;
-	MemoryContext oldcontext;
->>>>>>> REL_16_9
 	TupleTableSlot *pslot = mstate->probeslot;
 	uint32		hashkey = 0;
 	int			numkeys = mstate->nkeys;
 
-<<<<<<< HEAD
-=======
-	oldcontext = MemoryContextSwitchTo(econtext->ecxt_per_tuple_memory);
-
->>>>>>> REL_16_9
 	if (mstate->binary_mode)
 	{
 		for (int i = 0; i < numkeys; i++)
 		{
-<<<<<<< HEAD
-			/* rotate hashkey left 1 bit at each step */
-			hashkey = (hashkey << 1) | ((hashkey & 0x80000000) ? 1 : 0);
-=======
 			/* combine successive hashkeys by rotating */
 			hashkey = pg_rotate_left32(hashkey, 1);
->>>>>>> REL_16_9
 
 			if (!pslot->tts_isnull[i])	/* treat nulls as having hash key 0 */
 			{
@@ -214,13 +189,8 @@ MemoizeHash_hash(struct memoize_hash *tb, const MemoizeKey *key)
 
 		for (int i = 0; i < numkeys; i++)
 		{
-<<<<<<< HEAD
-			/* rotate hashkey left 1 bit at each step */
-			hashkey = (hashkey << 1) | ((hashkey & 0x80000000) ? 1 : 0);
-=======
 			/* combine successive hashkeys by rotating */
 			hashkey = pg_rotate_left32(hashkey, 1);
->>>>>>> REL_16_9
 
 			if (!pslot->tts_isnull[i])	/* treat nulls as having hash key 0 */
 			{
@@ -233,7 +203,6 @@ MemoizeHash_hash(struct memoize_hash *tb, const MemoizeKey *key)
 		}
 	}
 
-	MemoryContextSwitchTo(oldcontext);
 	return murmurhash32(hashkey);
 }
 
@@ -245,11 +214,7 @@ MemoizeHash_hash(struct memoize_hash *tb, const MemoizeKey *key)
  */
 static bool
 MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1,
-<<<<<<< HEAD
-			  const MemoizeKey *key2)
-=======
 				  const MemoizeKey *key2)
->>>>>>> REL_16_9
 {
 	MemoizeState *mstate = (MemoizeState *) tb->private_data;
 	ExprContext *econtext = mstate->ss.ps.ps_ExprContext;
@@ -261,15 +226,7 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1,
 
 	if (mstate->binary_mode)
 	{
-<<<<<<< HEAD
-		int			numkeys = mstate->nkeys;
-=======
-		MemoryContext oldcontext;
 		int			numkeys = mstate->nkeys;
-		bool		match = true;
-
-		oldcontext = MemoryContextSwitchTo(econtext->ecxt_per_tuple_memory);
->>>>>>> REL_16_9
 
 		slot_getallattrs(tslot);
 		slot_getallattrs(pslot);
@@ -279,14 +236,7 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1,
 			FormData_pg_attribute *attr;
 
 			if (tslot->tts_isnull[i] != pslot->tts_isnull[i])
-<<<<<<< HEAD
 				return false;
-=======
-			{
-				match = false;
-				break;
-			}
->>>>>>> REL_16_9
 
 			/* both NULL? they're equal */
 			if (tslot->tts_isnull[i])
@@ -296,30 +246,15 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1,
 			attr = &tslot->tts_tupleDescriptor->attrs[i];
 			if (!datum_image_eq(tslot->tts_values[i], pslot->tts_values[i],
 								attr->attbyval, attr->attlen))
-<<<<<<< HEAD
 				return false;
 		}
-		return true;
-=======
-			{
-				match = false;
-				break;
-			}
-		}
-
-		MemoryContextSwitchTo(oldcontext);
-		return match;
->>>>>>> REL_16_9
+		return true
 	}
 	else
 	{
 		econtext->ecxt_innertuple = tslot;
 		econtext->ecxt_outertuple = pslot;
-<<<<<<< HEAD
 		return ExecQualAndReset(mstate->cache_eq_expr, econtext);
-=======
-		return ExecQual(mstate->cache_eq_expr, econtext);
->>>>>>> REL_16_9
 	}
 }
 
@@ -362,11 +297,7 @@ prepare_probe_slot(MemoizeState *mstate, MemoizeKey *key)
 		/* Set the probeslot's values based on the current parameter values */
 		for (int i = 0; i < numKeys; i++)
 			pslot->tts_values[i] = ExecEvalExpr(mstate->param_exprs[i],
-<<<<<<< HEAD
 												mstate->ss.ps.ps_ExprContext,
-=======
-												econtext,
->>>>>>> REL_16_9
 												&pslot->tts_isnull[i]);
 
 		MemoryContextSwitchTo(oldcontext);
@@ -451,11 +382,7 @@ static void
 cache_purge_all(MemoizeState *mstate)
 {
 	uint64		evictions = mstate->hashtable->members;
-<<<<<<< HEAD
-	PlanState *pstate = (PlanState *) mstate;
-=======
 	PlanState  *pstate = (PlanState *) mstate;
->>>>>>> REL_16_9
 
 	/*
 	 * Likely the most efficient way to remove all items is to just reset the
@@ -558,11 +485,7 @@ cache_reduce_memory(MemoizeState *mstate, MemoizeKey *specialkey)
 			break;
 	}
 
-<<<<<<< HEAD
-	mstate->stats.cache_evictions += evictions;	/* Update Stats */
-=======
 	mstate->stats.cache_evictions += evictions; /* Update Stats */
->>>>>>> REL_16_9
 
 	return specialkey_intact;
 }
@@ -752,24 +675,9 @@ static TupleTableSlot *
 ExecMemoize(PlanState *pstate)
 {
 	MemoizeState *node = castNode(MemoizeState, pstate);
-<<<<<<< HEAD
 	PlanState  *outerNode;
 	TupleTableSlot *slot;
 
-=======
-	ExprContext *econtext = node->ss.ps.ps_ExprContext;
-	PlanState  *outerNode;
-	TupleTableSlot *slot;
-
-	CHECK_FOR_INTERRUPTS();
-
-	/*
-	 * Reset per-tuple memory context to free any expression evaluation
-	 * storage allocated in the previous tuple cycle.
-	 */
-	ResetExprContext(econtext);
-
->>>>>>> REL_16_9
 	switch (node->mstatus)
 	{
 		case MEMO_CACHE_LOOKUP:
@@ -1058,13 +966,8 @@ ExecInitMemoize(Memoize *node, EState *estate, int eflags)
 												 &TTSOpsVirtual);
 
 	mstate->param_exprs = (ExprState **) palloc(nkeys * sizeof(ExprState *));
-<<<<<<< HEAD
-	mstate->collations = node->collations; /* Just point directly to the plan
-											* data */
-=======
 	mstate->collations = node->collations;	/* Just point directly to the plan
 											 * data */
->>>>>>> REL_16_9
 	mstate->hashfunctions = (FmgrInfo *) palloc(nkeys * sizeof(FmgrInfo));
 
 	eqfuncoids = palloc(nkeys * sizeof(Oid));
@@ -1228,7 +1131,6 @@ ExecReScanMemoize(MemoizeState *node)
 	 */
 	if (bms_nonempty_difference(outerPlan->chgParam, node->keyparamids))
 		cache_purge_all(node);
-<<<<<<< HEAD
 }
 
 void
@@ -1236,8 +1138,6 @@ ExecSquelchMemoize(MemoizeState *node, bool force)
 {
 	node->ss.ps.squelched = true;
 	ExecSquelchNode(outerPlanState(node), force);
-=======
->>>>>>> REL_16_9
 }
 
 /*
@@ -1249,11 +1149,7 @@ double
 ExecEstimateCacheEntryOverheadBytes(double ntuples)
 {
 	return sizeof(MemoizeEntry) + sizeof(MemoizeKey) + sizeof(MemoizeTuple) *
-<<<<<<< HEAD
-			ntuples;
-=======
 		ntuples;
->>>>>>> REL_16_9
 }
 
 /* ----------------------------------------------------------------
diff --git a/src/backend/executor/nodeMergeAppend.c b/src/backend/executor/nodeMergeAppend.c
index 74e4e58021e..d8f681f3d6d 100644
--- a/src/backend/executor/nodeMergeAppend.c
+++ b/src/backend/executor/nodeMergeAppend.c
@@ -224,15 +224,12 @@ ExecMergeAppend(PlanState *pstate)
 			MergeAppend *plan = (MergeAppend *) node->ps.plan;
 
 			node->ms_valid_subplans =
-<<<<<<< HEAD
 				ExecFindMatchingSubPlans(node->ms_prune_state,
+										 false,
 										 node->ps.state,
 										 list_length(plan->mergeplans),
 										 plan->join_prune_paramids);
 		}
-=======
-				ExecFindMatchingSubPlans(node->ms_prune_state, false);
->>>>>>> REL_16_9
 
 		/*
 		 * First time through: pull the first tuple from each valid subplan,
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c
index 47b29f608a0..b8a737e367d 100644
--- a/src/backend/executor/nodeMergejoin.c
+++ b/src/backend/executor/nodeMergejoin.c
@@ -3,13 +3,9 @@
  * nodeMergejoin.c
  *	  routines supporting merge joins
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeNestloop.c b/src/backend/executor/nodeNestloop.c
index 22cd9c5275b..9c820002928 100644
--- a/src/backend/executor/nodeNestloop.c
+++ b/src/backend/executor/nodeNestloop.c
@@ -3,13 +3,9 @@
  * nodeNestloop.c
  *	  routines to support nest-loop joins
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeResult.c b/src/backend/executor/nodeResult.c
index 28cebb43f04..6ea4ca0a585 100644
--- a/src/backend/executor/nodeResult.c
+++ b/src/backend/executor/nodeResult.c
@@ -34,13 +34,9 @@
  *		plan normally and pass back the results.
  *
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2008, Greenplum inc.
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c
index 70b8e923f94..6bdb9fb13d2 100644
--- a/src/backend/executor/nodeSeqscan.c
+++ b/src/backend/executor/nodeSeqscan.c
@@ -200,14 +200,8 @@ ExecInitSeqScanForPartition(SeqScan *node, EState *estate,
 	/*
 	 * open the scan relation
 	 */
-<<<<<<< HEAD
+
 	scanstate->ss.ss_currentRelation = currentRelation;
-=======
-	scanstate->ss.ss_currentRelation =
-		ExecOpenScanRelation(estate,
-							 node->scan.scanrelid,
-							 eflags);
->>>>>>> REL_16_9
 
 	/* and create slot with the appropriate rowtype */
 	ExecInitScanTupleSlot(estate, &scanstate->ss,
diff --git a/src/backend/executor/nodeSort.c b/src/backend/executor/nodeSort.c
index abea37a0d1e..ce43edcd81e 100644
--- a/src/backend/executor/nodeSort.c
+++ b/src/backend/executor/nodeSort.c
@@ -3,13 +3,9 @@
  * nodeSort.c
  *	  Routines to handle sorting of relations.
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2007-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
@@ -121,17 +117,6 @@ ExecSort(PlanState *pstate)
 		outerNode = outerPlanState(node);
 		tupDesc = ExecGetResultType(outerNode);
 
-<<<<<<< HEAD
-		tuplesortstate = tuplesort_begin_heap(tupDesc,
-											  plannode->numCols,
-											  plannode->sortColIdx,
-											  plannode->sortOperators,
-											  plannode->collations,
-											  plannode->nullsFirst,
-											  PlanStateOperatorMemKB((PlanState *) node),
-											  NULL,
-											  node->randomAccess);
-=======
 		if (node->randomAccess)
 			tuplesortopts |= TUPLESORT_RANDOMACCESS;
 		if (node->bounded)
@@ -142,7 +127,7 @@ ExecSort(PlanState *pstate)
 												   plannode->sortOperators[0],
 												   plannode->collations[0],
 												   plannode->nullsFirst[0],
-												   work_mem,
+												   PlanStateOperatorMemKB((PlanState *) node),
 												   NULL,
 												   tuplesortopts);
 		else
@@ -152,10 +137,9 @@ ExecSort(PlanState *pstate)
 												  plannode->sortOperators,
 												  plannode->collations,
 												  plannode->nullsFirst,
-												  work_mem,
+												  PlanStateOperatorMemKB((PlanState *) node),
 												  NULL,
 												  tuplesortopts);
->>>>>>> REL_16_9
 		if (node->bounded)
 			tuplesort_set_bound(tuplesortstate, node->bound);
 		node->tuplesortstate = (void *) tuplesortstate;
@@ -234,16 +218,6 @@ ExecSort(PlanState *pstate)
 			   "retrieving tuple from tuplesort");
 
 	slot = node->ss.ps.ps_ResultTupleSlot;
-<<<<<<< HEAD
-	(void) tuplesort_gettupleslot(tuplesortstate,
-								  ScanDirectionIsForward(dir),
-								  false, slot, NULL);
-
-	if (TupIsNull(slot) && !node->delayEagerFree)
-	{
-		ExecEagerFreeSort(node);
-	}
-=======
 
 	/*
 	 * Fetch the next sorted item from the appropriate tuplesort function. For
@@ -264,7 +238,11 @@ ExecSort(PlanState *pstate)
 		(void) tuplesort_gettupleslot(tuplesortstate,
 									  ScanDirectionIsForward(dir),
 									  false, slot, NULL);
->>>>>>> REL_16_9
+
+	if (TupIsNull(slot) && !node->delayEagerFree)
+	{
+		ExecEagerFreeSort(node);
+	}
 
 	return slot;
 }
diff --git a/src/backend/executor/nodeSubplan.c b/src/backend/executor/nodeSubplan.c
index 42fbdf40133..a19d7875283 100644
--- a/src/backend/executor/nodeSubplan.c
+++ b/src/backend/executor/nodeSubplan.c
@@ -11,13 +11,9 @@
  * subplans, which are re-evaluated every time their result is required.
  *
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2005-2010, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
@@ -1229,7 +1225,6 @@ PG_TRY();
 	oldcontext = MemoryContextSwitchTo(econtext->ecxt_per_query_memory);
 
 	/*
-<<<<<<< HEAD
 	 * Set Params of this plan from parent plan correlation values. (Any
 	 * calculation we have to do is done in the parent econtext, since the
 	 * Param values don't need to have per-query lifetime.)  Currently, we
@@ -1271,8 +1266,6 @@ PG_TRY();
 	}
 
 	/*
-=======
->>>>>>> REL_16_9
 	 * Run the plan.  (If it needs to be rescanned, the first ExecProcNode
 	 * call will take care of that.)
 	 */
diff --git a/src/backend/executor/nodeSubqueryscan.c b/src/backend/executor/nodeSubqueryscan.c
index 549d9061488..2fcd8938869 100644
--- a/src/backend/executor/nodeSubqueryscan.c
+++ b/src/backend/executor/nodeSubqueryscan.c
@@ -7,13 +7,9 @@
  * we need two sets of code.  Ought to look at trying to unify the cases.
  *
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2006-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/nodeValuesscan.c b/src/backend/executor/nodeValuesscan.c
index 44d2931f2df..99699893681 100644
--- a/src/backend/executor/nodeValuesscan.c
+++ b/src/backend/executor/nodeValuesscan.c
@@ -4,13 +4,9 @@
  *	  Support routines for scanning Values lists
  *	  ("VALUES (...), (...), ..." in rangetable).
  *
-<<<<<<< HEAD
  * Portions Copyright (c) 2006-2008, Greenplum inc
  * Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index 296c08e2808..8ffce8f477b 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -276,10 +276,7 @@ _SPI_commit(bool chain)
 				(errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION),
 				 errmsg("cannot commit while a subtransaction is active")));
 
-<<<<<<< HEAD
 	/* XXX this ain't re-entrant enough for my taste */
-=======
->>>>>>> REL_16_9
 	if (chain)
 		SaveTransactionCharacteristics(&savetc);
 
@@ -305,11 +302,7 @@ _SPI_commit(bool chain)
 		/* Immediately start a new transaction */
 		StartTransactionCommand();
 		if (chain)
-<<<<<<< HEAD
-			RestoreTransactionCharacteristics();
-=======
 			RestoreTransactionCharacteristics(&savetc);
->>>>>>> REL_16_9
 
 		MemoryContextSwitchTo(oldcontext);
 
@@ -333,11 +326,7 @@ _SPI_commit(bool chain)
 		/* ... and start a new one */
 		StartTransactionCommand();
 		if (chain)
-<<<<<<< HEAD
-			RestoreTransactionCharacteristics();
-=======
 			RestoreTransactionCharacteristics(&savetc);
->>>>>>> REL_16_9
 
 		MemoryContextSwitchTo(oldcontext);
 
@@ -367,11 +356,7 @@ _SPI_rollback(bool chain)
 	MemoryContext oldcontext = CurrentMemoryContext;
 	SavedTransactionCharacteristics savetc;
 
-<<<<<<< HEAD
-	/* see under SPI_commit() */
-=======
 	/* see comments in _SPI_commit() */
->>>>>>> REL_16_9
 	if (_SPI_current->atomic)
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION),
@@ -383,10 +368,7 @@ _SPI_rollback(bool chain)
 				(errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION),
 				 errmsg("cannot roll back while a subtransaction is active")));
 
-<<<<<<< HEAD
 	/* XXX this ain't re-entrant enough for my taste */
-=======
->>>>>>> REL_16_9
 	if (chain)
 		SaveTransactionCharacteristics(&savetc);
 
@@ -413,11 +395,7 @@ _SPI_rollback(bool chain)
 		/* Immediately start a new transaction */
 		StartTransactionCommand();
 		if (chain)
-<<<<<<< HEAD
-			RestoreTransactionCharacteristics();
-=======
 			RestoreTransactionCharacteristics(&savetc);
->>>>>>> REL_16_9
 
 		MemoryContextSwitchTo(oldcontext);
 
@@ -442,11 +420,7 @@ _SPI_rollback(bool chain)
 		/* ... and start a new one */
 		StartTransactionCommand();
 		if (chain)
-<<<<<<< HEAD
-			RestoreTransactionCharacteristics();
-=======
 			RestoreTransactionCharacteristics(&savetc);
->>>>>>> REL_16_9
 
 		MemoryContextSwitchTo(oldcontext);
 
@@ -470,20 +444,6 @@ SPI_rollback_and_chain(void)
 	_SPI_rollback(true);
 }
 
-/*
-<<<<<<< HEAD
- * SPICleanup is a no-op, kept for backwards compatibility. We rely on
- * AtEOXact_SPI to cleanup. Extensions should not (need to) fiddle with the
- * internal SPI state directly.
- */
-void
-SPICleanup(void)
-{
-}
-
-/*
-=======
->>>>>>> REL_16_9
  * Clean up SPI state at transaction commit or abort.
  */
 void
@@ -493,11 +453,7 @@ AtEOXact_SPI(bool isCommit)
 
 	/*
 	 * Pop stack entries, stopping if we find one marked internal_xact (that
-<<<<<<< HEAD
-	 * one belongs to the caller of SPI_commit or SPI_abort).
-=======
 	 * one belongs to the caller of SPI_commit or SPI_rollback).
->>>>>>> REL_16_9
 	 */
 	while (_SPI_connected >= 0)
 	{
@@ -2572,10 +2528,6 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options,
 	 */
 	if (snapshot != InvalidSnapshot)
 	{
-<<<<<<< HEAD
-=======
-		/* this intentionally tests the options field not the derived value */
->>>>>>> REL_16_9
 		Assert(!options->allow_nonatomic);
 		if (options->read_only)
 		{
@@ -2704,11 +2656,7 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options,
 		 * plan, the refcount must be backed by the plan_owner.
 		 */
 		cplan = GetCachedPlan(plansource, options->params,
-<<<<<<< HEAD
 							  plan_owner, _SPI_current->queryEnv, NULL);
-=======
-							  plan_owner, _SPI_current->queryEnv);
->>>>>>> REL_16_9
 
 		stmt_list = cplan->stmt_list;
 
@@ -2739,11 +2687,7 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options,
 			 * Skip it when doing non-atomic execution, though (we rely
 			 * entirely on the Portal snapshot in that case).
 			 */
-<<<<<<< HEAD
 			if (!options->read_only && !options->allow_nonatomic)
-=======
-			if (!options->read_only && !allow_nonatomic)
->>>>>>> REL_16_9
 			{
 				if (pushed_active_snap)
 					PopActiveSnapshot();
@@ -2854,16 +2798,10 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options,
 				 * If we're not allowing nonatomic operations, tell
 				 * ProcessUtility this is an atomic execution context.
 				 */
-<<<<<<< HEAD
 				if (_SPI_current->atomic || !options->allow_nonatomic)
 					context = PROCESS_UTILITY_QUERY;
 				else
-=======
-				if (allow_nonatomic)
->>>>>>> REL_16_9
 					context = PROCESS_UTILITY_QUERY_NONATOMIC;
-				else
-					context = PROCESS_UTILITY_QUERY;
 
 				InitializeQueryCompletion(&qc);
 				ProcessUtility(stmt,


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org