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]