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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to