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 9f4f665ab1a Fix some compile error for header file
9f4f665ab1a is described below

commit 9f4f665ab1a7b2af5af0ff3ba29b48a295dfcf61
Author: Jinbao Chen <chenjinbao1...@gmail.com>
AuthorDate: Mon Sep 22 18:15:42 2025 +0800

    Fix some compile error for header file
---
 src/backend/Makefile                               |   4 +-
 src/backend/access/transam/xloginsert.c            |   6 +-
 src/backend/nodes/Makefile                         |  70 ---
 src/include/access/htup_details.h                  |  83 ---
 src/include/access/xloginsert.h                    |   4 +-
 src/include/access/xlogreader.h                    |   9 -
 .../catalog/gp_segment_configuration_indexing.h    |   6 +-
 src/include/nodes/nodes.h                          | 660 ++++++++++++++++++++-
 src/include/nodes/pathnodes.h                      |  17 -
 src/include/nodes/plannodes.h                      |   1 -
 src/include/nodes/value.h                          |  10 +
 src/include/port/pg_bitutils.h                     |  20 -
 src/include/portability/instr_time.h               | 120 ----
 src/include/storage/lock.h                         |   2 +-
 src/include/tcop/cmdtag.h                          |   2 +-
 src/include/tcop/dest.h                            |   4 -
 src/include/utils/portal.h                         |   3 -
 src/include/utils/rel.h                            |   3 +-
 18 files changed, 682 insertions(+), 342 deletions(-)

diff --git a/src/backend/Makefile b/src/backend/Makefile
index 3b07e9b435e..fb9d5e5aceb 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -168,8 +168,8 @@ submake-catalog-headers:
        $(MAKE) -C catalog distprep generated-header-symlinks
 
 # run this unconditionally to avoid needing to know its dependencies here:
-submake-nodes-headers:
-       $(MAKE) -C nodes distprep generated-header-symlinks
+#submake-nodes-headers:
+#      $(MAKE) -C nodes distprep generated-header-symlinks
 
 # run this unconditionally to avoid needing to know its dependencies here:
 submake-utils-headers:
diff --git a/src/backend/access/transam/xloginsert.c 
b/src/backend/access/transam/xloginsert.c
index e63cf0c3a56..6a218b99aac 100644
--- a/src/backend/access/transam/xloginsert.c
+++ b/src/backend/access/transam/xloginsert.c
@@ -1422,7 +1422,7 @@ InitXLogInsert(void)
  * Get RelFileNode/ForkNumber/BlockNumber of XLog register block if any.
  */
 bool
-GetXLogRegisterBufferTagIfAny(RelFileNode *rnode, ForkNumber *forknum, 
BlockNumber *blkno)
+GetXLogRegisterBufferTagIfAny(RelFileLocator *rnode, ForkNumber *forknum, 
BlockNumber *blkno)
 {
     for (int i = 0; i < max_registered_block_id; i++)
     {
@@ -1443,12 +1443,12 @@ GetNumXLogRegisterBuffers(void)
  * Caller should make sure the block_id is valid(block_id < 
max_registered_block_id).
  */
 bool
-GetXLogRegisterBuffer(int block_id, RelFileNode *rnode, ForkNumber *forknum, 
BlockNumber *blkno, Page *page)
+GetXLogRegisterBuffer(int block_id, RelFileLocator *rnode, ForkNumber 
*forknum, BlockNumber *blkno, Page *page)
 {
     if (registered_buffers[block_id].in_use)
     {
         if (rnode)
-            *rnode = registered_buffers[block_id].rnode;
+            *rnode = registered_buffers[block_id].rlocator;
         if (forknum)
             *forknum = registered_buffers[block_id].forkno;
         if (blkno)
diff --git a/src/backend/nodes/Makefile b/src/backend/nodes/Makefile
index aa3ae2f8f31..93dc5538c96 100644
--- a/src/backend/nodes/Makefile
+++ b/src/backend/nodes/Makefile
@@ -12,8 +12,6 @@ subdir = src/backend/nodes
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
-override CPPFLAGS := -I. -I$(srcdir) $(CPPFLAGS)
-
 OBJS = \
        bitmapset.o \
        copyfuncs.o \
@@ -21,14 +19,12 @@ OBJS = \
        extensible.o \
        list.o \
        makefuncs.o \
-       multibitmapset.o \
        nodeFuncs.o \
        nodes.o \
        outfast.o \
        outfuncs.o \
        params.o \
        print.o \
-       queryjumblefuncs.o \
        read.o \
        readfast.o \
        readfuncs.o \
@@ -40,69 +36,3 @@ readfast.o: readfuncs.c readfast.c readfuncs_common.c
 outfast.o: outfuncs.c outfast.c outfuncs_common.c
 
 include $(top_srcdir)/src/backend/common.mk
-
-# The principal node-defining headers are listed in their inclusion order,
-# to ensure cross-file subtyping works correctly.  The rest can just be
-# listed alphabetically.
-# Caution: re-ordering this list risks ABI breakage!
-node_headers = \
-       nodes/nodes.h \
-       nodes/primnodes.h \
-       nodes/parsenodes.h \
-       nodes/pathnodes.h \
-       nodes/plannodes.h \
-       nodes/execnodes.h \
-       access/amapi.h \
-       access/sdir.h \
-       access/tableam.h \
-       access/tsmapi.h \
-       commands/event_trigger.h \
-       commands/trigger.h \
-       executor/tuptable.h \
-       foreign/fdwapi.h \
-       nodes/bitmapset.h \
-       nodes/extensible.h \
-       nodes/lockoptions.h \
-       nodes/miscnodes.h \
-       nodes/replnodes.h \
-       nodes/supportnodes.h \
-       nodes/value.h \
-       utils/rel.h
-
-# see also catalog/Makefile for an explanation of these make rules
-
-all: distprep generated-header-symlinks
-
-distprep: node-support-stamp
-
-.PHONY: generated-header-symlinks
-
-generated-header-symlinks: $(top_builddir)/src/include/nodes/header-stamp
-
-# node-support-stamp records the last time we ran gen_node_support.pl.
-# We don't rely on the timestamps of the individual output files,
-# because the Perl script won't update them if they didn't change (to
-# avoid unnecessary recompiles).
-node-support-stamp: gen_node_support.pl $(addprefix 
$(top_srcdir)/src/include/,$(node_headers))
-       $(PERL) $^
-       touch $@
-
-# These generated headers must be symlinked into builddir/src/include/,
-# using absolute links for the reasons explained in src/backend/Makefile.
-# We use header-stamp to record that we've done this because the symlinks
-# themselves may appear older than node-support-stamp.
-$(top_builddir)/src/include/nodes/header-stamp: node-support-stamp
-       prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
-       cd '$(dir $@)' && for file in nodetags.h; do \
-         rm -f $$file && $(LN_S) "$$prereqdir/$$file" . ; \
-       done
-       touch $@
-
-copyfuncs.o: copyfuncs.c copyfuncs.funcs.c copyfuncs.switch.c | 
node-support-stamp
-equalfuncs.o: equalfuncs.c equalfuncs.funcs.c equalfuncs.switch.c | 
node-support-stamp
-outfuncs.o: outfuncs.c outfuncs.funcs.c outfuncs.switch.c | node-support-stamp
-queryjumblefuncs.o: queryjumblefuncs.c queryjumblefuncs.funcs.c 
queryjumblefuncs.switch.c | node-support-stamp
-readfuncs.o:  readfuncs.c readfuncs.funcs.c readfuncs.switch.c | 
node-support-stamp
-
-maintainer-clean: clean
-       rm -f node-support-stamp $(addsuffix funcs.funcs.c,copy equal out 
queryjumble read) $(addsuffix funcs.switch.c,copy equal out queryjumble read) 
nodetags.h
diff --git a/src/include/access/htup_details.h 
b/src/include/access/htup_details.h
index 8023022d769..cb368894656 100644
--- a/src/include/access/htup_details.h
+++ b/src/include/access/htup_details.h
@@ -713,89 +713,6 @@ extern Datum heap_getsysattr(HeapTuple tup, int attnum, 
TupleDesc tupleDesc,
 extern Datum getmissingattr(TupleDesc tupleDesc,
                                                        int attnum, bool 
*isnull);
 
-/* ----------------
- *             fastgetattr
- *
- *             Fetch a user attribute's value as a Datum (might be either a
- *             value, or a pointer into the data area of the tuple).
- *
- *             This must not be used when a system attribute might be 
requested.
- *             Furthermore, the passed attnum MUST be valid.  Use 
heap_getattr()
- *             instead, if in doubt.
- *
- *             This gets called many times, so we macro the cacheable and NULL
- *             lookups, and call nocachegetattr() for the rest.
- *
- *      CDB:  Implemented as inline function instead of macro.
- * ----------------
- */
-static inline Datum
-fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
-{
-    Datum               result;
-    Form_pg_attribute   att = TupleDescAttr(tupleDesc, attnum - 1);
-
-    Assert(attnum > 0);
-
-       *isnull = false;
-
-    if (HeapTupleNoNulls(tup))
-    {
-        if (att->attcacheoff >= 0)
-                       result = fetchatt(att,
-                                             (char *)tup->t_data + 
tup->t_data->t_hoff +
-                                                   att->attcacheoff);
-        else
-            result = nocachegetattr(tup, attnum, tupleDesc);
-    }
-    else if (att_isnull(attnum-1, tup->t_data->t_bits))
-    {
-               result = Int32GetDatum(0);
-               *isnull = true;
-    }
-    else
-        result = nocachegetattr(tup, attnum, tupleDesc);
-
-    return result;
-}                               /* fastgetattr */
-
-
-/* ----------------
- *             heap_getattr
- *
- *             Extract an attribute of a heap tuple and return it as a Datum.
- *             This works for either system or user attributes.  The given 
attnum
- *             is properly range-checked.
- *
- *             If the field in question has a NULL value, we return a zero 
Datum
- *             and set *isnull == true.  Otherwise, we set *isnull == false.
- *
- *             <tup> is the pointer to the heap tuple.  <attnum> is the 
attribute
- *             number of the column (field) caller wants.  <tupleDesc> is a
- *             pointer to the structure describing the row and all its fields.
- *
- *      GPDB:  Implemented as inline function instead of macro.
- * ----------------
- */
-static inline Datum
-heap_getattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
-{
-    Datum       result;
-
-    Assert(tup != NULL);
-
-    if (attnum > (int)HeapTupleHeaderGetNatts(tup->t_data))
-    {
-        result = getmissingattr(tupleDesc, attnum, isnull);
-    }
-    else if (attnum > 0)
-        result = fastgetattr(tup, attnum, tupleDesc, isnull);
-    else
-        result = heap_getsysattr(tup, attnum, tupleDesc, isnull);
-
-    return result;
-}                               /* heap_getattr */
-
 /* prototypes for functions in common/heaptuple.c */
 extern Size heap_compute_data_size(TupleDesc tupleDesc,
                                                                   Datum 
*values, bool *isnull);
diff --git a/src/include/access/xloginsert.h b/src/include/access/xloginsert.h
index 8c2082c906e..2b8bc87fe3b 100644
--- a/src/include/access/xloginsert.h
+++ b/src/include/access/xloginsert.h
@@ -44,9 +44,9 @@ typedef void * (*RecordAssembleFunc)(RmgrId rmid, uint8 info,
 typedef XLogRecPtr (*XLogInsert_hook_type)(RmgrId rmid, uint8 info, 
TransactionId headerXid, uint8 curinsert_flags, RecordAssembleFunc 
recordAssembleFunc);
 extern PGDLLIMPORT XLogInsert_hook_type XLogInsert_hook;
 
-extern bool GetXLogRegisterBufferTagIfAny(RelFileNode *rnode, ForkNumber 
*forknum, BlockNumber *blkno);
+extern bool GetXLogRegisterBufferTagIfAny(RelFileLocator *rnode, ForkNumber 
*forknum, BlockNumber *blkno);
 extern int GetNumXLogRegisterBuffers(void);
-extern bool GetXLogRegisterBuffer(int block_id, RelFileNode *rnode, ForkNumber 
*forknum, BlockNumber *blkno, char **page);
+extern bool GetXLogRegisterBuffer(int block_id, RelFileLocator *rnode, 
ForkNumber *forknum, BlockNumber *blkno, char **page);
 extern char *GetXLogRegisterRdata(int rdata_index);
 
 /* prototypes for public functions in xloginsert.c: */
diff --git a/src/include/access/xlogreader.h b/src/include/access/xlogreader.h
index 0f0805138eb..9c217194d03 100644
--- a/src/include/access/xlogreader.h
+++ b/src/include/access/xlogreader.h
@@ -309,15 +309,6 @@ struct XLogReaderState
        /* Buffer to hold error message */
        char       *errormsg_buf;
 
-       /*
-        * Set at the end of recovery: the start point of a partial record at 
the
-        * end of WAL (InvalidXLogRecPtr if there wasn't one), and the start
-        * location of its first contrecord that went missing.
-        */
-       XLogRecPtr      abortedRecPtr;
-       XLogRecPtr      missingContrecPtr;
-       /* Set when XLP_FIRST_IS_OVERWRITE_CONTRECORD is found */
-       XLogRecPtr      overwrittenRecPtr;
        bool            errormsg_deferred;
 
        /*
diff --git a/src/include/catalog/gp_segment_configuration_indexing.h 
b/src/include/catalog/gp_segment_configuration_indexing.h
index 6dd844353cc..b4d2ac669db 100644
--- a/src/include/catalog/gp_segment_configuration_indexing.h
+++ b/src/include/catalog/gp_segment_configuration_indexing.h
@@ -14,9 +14,7 @@
 
 #include "catalog/genbki.h"
 
-DECLARE_UNIQUE_INDEX(gp_segment_config_content_preferred_role_warehouse_index, 
7139, on gp_segment_configuration using btree(content int2_ops, preferred_role 
char_ops, warehouseid oid_ops));
-#define GpSegmentConfigContentPreferred_roleWarehouseIndexId   7139
-DECLARE_UNIQUE_INDEX(gp_segment_config_dbid_warehouse_index, 7140, on 
gp_segment_configuration using btree(dbid int2_ops, warehouseid oid_ops));
-#define GpSegmentConfigDbidWarehouseIndexId    7140
+DECLARE_UNIQUE_INDEX(gp_segment_config_content_preferred_role_warehouse_index, 
7139, GpSegmentConfigContentPreferred_roleWarehouseIndexId, on 
gp_segment_configuration using btree(content int2_ops, preferred_role char_ops, 
warehouseid oid_ops));
+DECLARE_UNIQUE_INDEX(gp_segment_config_dbid_warehouse_index, 7140, 
GpSegmentConfigDbidWarehouseIndexId, on gp_segment_configuration using 
btree(dbid int2_ops, warehouseid oid_ops));
 
 #endif // GP_SEGMENT_CONFIGURATION_INDEXING_H
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h
index 92011ec3f5d..3d62d01651a 100644
--- a/src/include/nodes/nodes.h
+++ b/src/include/nodes/nodes.h
@@ -29,7 +29,665 @@ typedef enum NodeTag
 {
        T_Invalid = 0,
 
-#include "nodes/nodetags.h"
+       /*
+        * TAGS FOR EXECUTOR NODES (execnodes.h)
+        */
+       T_IndexInfo,
+       T_ExprContext,
+       T_ProjectionInfo,
+       T_JunkFilter,
+       T_OnConflictSetState,
+       T_ResultRelInfo,
+       T_EState,
+       T_TupleTableSlot,
+       T_CdbProcess,
+       T_SliceTable,
+       T_CursorPosInfo,
+       T_PartitionState,
+       T_QueryDispatchDesc,
+       T_OidAssignment,
+
+       /*
+        * TAGS FOR PLAN NODES (plannodes.h)
+        */
+       T_Plan,
+       T_Scan,
+       T_Join,
+
+       /* Real plan node starts below.  Scan and Join are "Virtual nodes",
+        * It will take the form of IndexScan, SeqScan, etc.
+        * CteScan will take the form of SubqueryScan.
+        */
+       T_Result,
+       T_Plan_Start = T_Result,
+       T_ProjectSet,
+       T_ModifyTable,
+       T_Append,
+       T_MergeAppend,
+       T_RecursiveUnion,
+       T_Sequence,
+       T_BitmapAnd,
+       T_BitmapOr,
+       T_SeqScan,
+       T_DynamicSeqScan,
+       T_SampleScan,
+       T_IndexScan,
+       T_DynamicIndexScan,
+       T_DynamicIndexOnlyScan,
+       T_IndexOnlyScan,
+       T_BitmapIndexScan,
+       T_DynamicBitmapIndexScan,
+       T_BitmapHeapScan,
+       T_DynamicBitmapHeapScan,
+       T_TidScan,
+       T_TidRangeScan,
+       T_SubqueryScan,
+       T_FunctionScan,
+       T_TableFunctionScan,
+       T_ValuesScan,
+       T_TableFuncScan,
+       T_CteScan,
+       T_NamedTuplestoreScan,
+       T_WorkTableScan,
+       T_ForeignScan,
+       T_DynamicForeignScan,
+       T_CustomScan,
+       T_NestLoop,
+       T_MergeJoin,
+       T_HashJoin,
+       T_Material,
+       T_Memoize,
+       T_Sort,
+       T_IncrementalSort,
+       T_Group,
+       T_Agg,
+       T_TupleSplit,
+       T_WindowAgg,
+       T_Unique,
+       T_Gather,
+       T_GatherMerge,
+       T_Hash,
+       T_RuntimeFilter,
+       T_SetOp,
+       T_LockRows,
+       T_Limit,
+       T_Motion,
+       T_ShareInputScan,
+       T_SplitUpdate,
+       T_AssertOp,
+       T_PartitionSelector,
+       T_Plan_End,
+       /* these aren't subclasses of Plan: */
+       T_NestLoopParam,
+       T_PlanRowMark,
+       T_PartitionPruneInfo,
+       T_PartitionedRelPruneInfo,
+       T_PartitionPruneStepOp,
+       T_PartitionPruneStepCombine,
+       T_PlanInvalItem,
+
+       /*
+        * TAGS FOR PLAN STATE NODES (execnodes.h)
+        *
+        * These should correspond one-to-one with Plan node types.
+        */
+       T_PlanState,
+       T_ScanState,
+       T_JoinState,
+
+       /* Real plan node starts below.  Scan and Join are "Virtal nodes",
+        * It will take the form of IndexScan, SeqScan, etc.
+        */
+       T_ResultState,
+       T_ProjectSetState,
+       T_ModifyTableState,
+       T_AppendState,
+       T_MergeAppendState,
+       T_RecursiveUnionState,
+       T_SequenceState,
+       T_BitmapAndState,
+       T_BitmapOrState,
+       T_SeqScanState,
+       T_DynamicSeqScanState,
+       T_SampleScanState,
+       T_IndexScanState,
+       T_DynamicIndexScanState,
+       T_DynamicIndexOnlyScanState,
+       T_IndexOnlyScanState,
+       T_BitmapIndexScanState,
+       T_DynamicBitmapIndexScanState,
+       T_BitmapHeapScanState,
+       T_DynamicBitmapHeapScanState,
+       T_TidScanState,
+       T_TidRangeScanState,
+       T_SubqueryScanState,
+       T_FunctionScanState,
+       T_TableFunctionState,
+       T_TableFuncScanState,
+       T_ValuesScanState,
+       T_CteScanState,
+       T_NamedTuplestoreScanState,
+       T_WorkTableScanState,
+       T_ForeignScanState,
+       T_DynamicForeignScanState,
+       T_CustomScanState,
+       T_NestLoopState,
+       T_MergeJoinState,
+       T_HashJoinState,
+       T_MaterialState,
+       T_MemoizeState,
+       T_SortState,
+       T_IncrementalSortState,
+       T_GroupState,
+       T_AggState,
+       T_TupleSplitState,
+       T_WindowAggState,
+       T_UniqueState,
+       T_GatherState,
+       T_GatherMergeState,
+       T_HashState,
+       T_RuntimeFilterState,
+       T_SetOpState,
+       T_LockRowsState,
+       T_LimitState,
+       T_MotionState,
+       T_ShareInputScanState,
+       T_SplitUpdateState,
+       T_AssertOpState,
+       T_PartitionSelectorState,
+
+       /*
+        * TupleDesc and ParamListInfo are not Nodes as such, but you can wrap
+        * them in TupleDescNode and SerializedParams structs for serialization.
+        */
+       T_TupleDescNode,
+       T_SerializedParams,
+
+       /*
+        * TAGS FOR PRIMITIVE NODES (primnodes.h)
+        */
+       T_Alias,
+       T_RangeVar,
+       T_TableFunc,
+       T_Expr,
+       T_Var,
+       T_Const,
+       T_Param,
+       T_DQAExpr,
+       T_Aggref,
+       T_GroupingFunc,
+       T_WindowFunc,
+       T_SubscriptingRef,
+       T_FuncExpr,
+       T_NamedArgExpr,
+       T_OpExpr,
+       T_DistinctExpr,
+       T_NullIfExpr,
+       T_ScalarArrayOpExpr,
+       T_BoolExpr,
+       T_SubLink,
+       T_SubPlan,
+       T_AlternativeSubPlan,
+       T_FieldSelect,
+       T_FieldStore,
+       T_RelabelType,
+       T_CoerceViaIO,
+       T_ArrayCoerceExpr,
+       T_ConvertRowtypeExpr,
+       T_CollateExpr,
+       T_CaseExpr,
+       T_CaseWhen,
+       T_CaseTestExpr,
+       T_ArrayExpr,
+       T_RowExpr,
+       T_RowCompareExpr,
+       T_CoalesceExpr,
+       T_MinMaxExpr,
+       T_SQLValueFunction,
+       T_XmlExpr,
+       T_NullTest,
+       T_BooleanTest,
+       T_CoerceToDomain,
+       T_CoerceToDomainValue,
+       T_SetToDefault,
+       T_CurrentOfExpr,
+       T_NextValueExpr,
+       T_InferenceElem,
+       T_TargetEntry,
+       T_RangeTblRef,
+       T_JoinExpr,
+       T_FromExpr,
+       T_OnConflictExpr,
+       T_IntoClause,
+       T_CopyIntoClause,
+       T_RefreshClause,
+       T_Flow,
+       T_GroupId,
+       T_GroupingSetId,
+       T_AggExprId,
+       T_RowIdExpr,
+       T_DistributedBy,
+       T_DMLActionExpr,
+
+       /*
+        * TAGS FOR EXPRESSION STATE NODES (execnodes.h)
+        *
+        * ExprState represents the evaluation state for a whole expression 
tree.
+        * Most Expr-based plan nodes do not have a corresponding expression 
state
+        * node, they're fully handled within execExpr* - but sometimes the 
state
+        * needs to be shared with other parts of the executor, as for example
+        * with SubPlanState, which nodeSubplan.c has to modify.
+        */
+       T_ExprState,
+       T_WindowFuncExprState,
+       T_SetExprState,
+       T_SubPlanState,
+       T_DomainConstraintState,
+       T_AggExprIdState,
+       T_RowIdExprState,
+
+       /*
+        * TAGS FOR PLANNER NODES (pathnodes.h)
+        */
+       T_PlannerInfo,
+       T_PlannerGlobal,
+       T_RelOptInfo,
+       T_IndexOptInfo,
+       T_ForeignKeyOptInfo,
+       T_ParamPathInfo,
+       T_RelAggInfo,
+       T_Path,
+       T_AppendOnlyPath,
+       T_AOCSPath,
+       T_ExternalPath,
+       T_CtePath,
+       T_IndexPath,
+       T_BitmapHeapPath,
+       T_BitmapAndPath,
+       T_BitmapOrPath,
+       T_TidPath,
+       T_TidRangePath,
+       T_SubqueryScanPath,
+       T_TableFunctionScanPath,
+       T_ForeignPath,
+       T_CustomPath,
+       T_NestPath,
+       T_MergePath,
+       T_HashPath,
+       T_RuntimeFilterPath,
+       T_AppendPath,
+       T_MergeAppendPath,
+       T_GroupResultPath,
+       T_MaterialPath,
+       T_MemoizePath,
+       T_UniquePath,
+       T_GatherPath,
+       T_GatherMergePath,
+       T_ProjectionPath,
+       T_ProjectSetPath,
+       T_SortPath,
+       T_IncrementalSortPath,
+       T_GroupPath,
+       T_UpperUniquePath,
+       T_AggPath,
+       T_GroupingSetsPath,
+       T_MinMaxAggPath,
+       T_WindowAggPath,
+       T_TupleSplitPath,
+       T_SetOpPath,
+       T_RecursiveUnionPath,
+       T_LockRowsPath,
+       T_ModifyTablePath,
+       T_LimitPath,
+       /* these aren't subclasses of Path: */
+       T_EquivalenceClass,
+       T_EquivalenceMember,
+       T_PathKey,
+       T_PathTarget,
+       T_RestrictInfo,
+       T_IndexClause,
+       T_PlaceHolderVar,
+       T_SpecialJoinInfo,
+       T_AppendRelInfo,
+       T_RowIdentityVarInfo,
+       T_PlaceHolderInfo,
+       T_GroupedVarInfo,
+       T_MinMaxAggInfo,
+       T_SegfileMapNode,
+       T_PlannerParamItem,
+       T_RollupData,
+       T_GroupingSetData,
+       T_StatisticExtInfo,
+
+    /* Tags for MPP planner nodes (relation.h) */
+    T_CdbMotionPath = 580,
+       T_PartitionSelectorPath,
+       T_SplitUpdatePath,
+    T_CdbRelColumnInfo,
+       T_DistributionKey,
+
+       /*
+        * TAGS FOR MEMORY NODES (memnodes.h)
+        */
+       T_MemoryContext,
+       T_AllocSetContext,
+       T_SlabContext,
+       T_GenerationContext,
+       T_MemoryAccount,
+
+       /*
+        * TAGS FOR VALUE NODES (value.h)
+        */
+       T_Value,
+       T_Integer,
+       T_Float,
+       T_String,
+       T_BitString,
+       T_Null,
+
+       /*
+        * TAGS FOR LIST NODES (pg_list.h)
+        */
+       T_List,
+       T_IntList,
+       T_OidList,
+
+       /*
+        * TAGS FOR EXTENSIBLE NODES (extensible.h)
+        */
+       T_ExtensibleNode,
+
+       /*
+        * TAGS FOR STATEMENT NODES (mostly in parsenodes.h)
+        */
+       T_RawStmt,
+       T_Query,
+       T_PlannedStmt,
+       T_InsertStmt,
+       T_DeleteStmt,
+       T_UpdateStmt,
+       T_SelectStmt,
+       T_ReturnStmt,
+       T_PLAssignStmt,
+       T_AlterTableStmt,
+       T_AlterTableCmd,
+       T_AlterDomainStmt,
+       T_SetOperationStmt,
+       T_GrantStmt,
+       T_GrantRoleStmt,
+       T_AlterDefaultPrivilegesStmt,
+       T_ClosePortalStmt,
+       T_ClusterStmt,
+       T_CopyStmt,
+       T_CreateStmt,
+       T_SingleRowErrorDesc,
+       T_ExtTableTypeDesc,
+       T_CreateExternalStmt,
+       T_DefineStmt,
+       T_DropStmt,
+       T_TruncateStmt,
+       T_CommentStmt,
+       T_FetchStmt,
+       T_IndexStmt,
+       T_CreateFunctionStmt,
+       T_AlterFunctionStmt,
+       T_DoStmt,
+       T_RenameStmt,
+       T_RuleStmt,
+       T_NotifyStmt,
+       T_ListenStmt,
+       T_UnlistenStmt,
+       T_TransactionStmt,
+       T_ViewStmt,
+       T_LoadStmt,
+       T_CreateDomainStmt,
+       T_CreatedbStmt,
+       T_DropdbStmt,
+       T_VacuumStmt,
+       T_ExplainStmt,
+       T_CreateTableAsStmt,
+       T_CreateSeqStmt,
+       T_AlterSeqStmt,
+       T_VariableSetStmt,
+       T_VariableShowStmt,
+       T_DiscardStmt,
+       T_CreateTrigStmt,
+       T_CreatePLangStmt,
+       T_CreateRoleStmt,
+       T_AlterRoleStmt,
+       T_DropRoleStmt,
+       T_CreateProfileStmt,
+       T_AlterProfileStmt,
+       T_DropProfileStmt,
+       T_CreateQueueStmt,
+       T_AlterQueueStmt,
+       T_DropQueueStmt,
+       T_CreateResourceGroupStmt,
+       T_DropResourceGroupStmt,
+       T_AlterResourceGroupStmt,
+       T_LockStmt,
+       T_ConstraintsSetStmt,
+       T_ReindexStmt,
+       T_CheckPointStmt,
+       T_CreateSchemaStmt,
+       T_AlterSchemaStmt,
+       T_CreateTagStmt,
+       T_AlterTagStmt,
+       T_DropTagStmt,
+       T_AlterDatabaseStmt,
+       T_AlterDatabaseSetStmt,
+       T_AlterRoleSetStmt,
+       T_CreateConversionStmt,
+       T_CreateCastStmt,
+       T_CreateOpClassStmt,
+       T_CreateOpFamilyStmt,
+       T_AlterOpFamilyStmt,
+       T_PrepareStmt,
+       T_ExecuteStmt,
+       T_DeallocateStmt,
+       T_DeclareCursorStmt,
+       T_CreateTableSpaceStmt,
+       T_DropTableSpaceStmt,
+       T_AlterObjectDependsStmt,
+       T_AlterObjectSchemaStmt,
+       T_AlterOwnerStmt,
+       T_AlterOperatorStmt,
+       T_AlterTypeStmt,
+       T_DropOwnedStmt,
+       T_ReassignOwnedStmt,
+       T_CompositeTypeStmt,
+       T_CreateEnumStmt,
+       T_CreateRangeStmt,
+       T_AlterEnumStmt,
+       T_AlterTSDictionaryStmt,
+       T_AlterTSConfigurationStmt,
+       T_CreateFdwStmt,
+       T_AlterFdwStmt,
+       T_CreateForeignServerStmt,
+       T_AlterForeignServerStmt,
+       T_CreateStorageServerStmt,
+       T_AlterStorageServerStmt,
+       T_DropStorageServerStmt,
+       T_CreateUserMappingStmt,
+       T_AlterUserMappingStmt,
+       T_DropUserMappingStmt,
+       T_CreateStorageUserMappingStmt,
+       T_AlterStorageUserMappingStmt,
+       T_DropStorageUserMappingStmt,
+       T_AlterTableSpaceOptionsStmt,
+       T_AlterTableMoveAllStmt,
+       T_SecLabelStmt,
+       T_CreateForeignTableStmt,
+       T_ImportForeignSchemaStmt,
+       T_CreateExtensionStmt,
+       T_AlterExtensionStmt,
+       T_AlterExtensionContentsStmt,
+       T_CreateEventTrigStmt,
+       T_AlterEventTrigStmt,
+       T_RefreshMatViewStmt,
+       T_ReplicaIdentityStmt,
+       T_AlterSystemStmt,
+       T_CreatePolicyStmt,
+       T_AlterPolicyStmt,
+       T_CreateTransformStmt,
+       T_CreateAmStmt,
+       T_CreatePublicationStmt,
+       T_AlterPublicationStmt,
+       T_CreateSubscriptionStmt,
+       T_AlterSubscriptionStmt,
+       T_DropSubscriptionStmt,
+       T_CreateStatsStmt,
+       T_AlterCollationStmt,
+       T_CallStmt,
+       T_AlterStatsStmt,
+       T_CreateTaskStmt,
+       T_AlterTaskStmt,
+       T_DropTaskStmt,
+
+       /* GPDB additions */
+       T_PartitionBy,
+       T_PartitionRangeItem,
+       T_PartitionValuesSpec,
+       T_CreateDirectoryTableStmt,
+       T_AlterDirectoryTableStmt,
+       T_DropDirectoryTableStmt,
+       T_CreateFileSpaceStmt,
+       T_FileSpaceEntry,
+       T_DropFileSpaceStmt,
+       T_TableValueExpr,
+       T_DenyLoginInterval,
+       T_DenyLoginPoint,
+       T_AlteredTableInfo,
+       T_NewConstraint,
+       T_NewColumnValue,
+       T_GpPartitionDefinition,
+       T_GpPartDefElem,
+       T_GpPartitionRangeItem,
+       T_GpPartitionRangeSpec,
+       T_GpPartitionListSpec,
+       T_GpAlterPartitionId,
+       T_GpDropPartitionCmd,
+       T_GpSplitPartitionCmd,
+       T_GpAlterPartitionCmd,
+       T_CreateWarehouseStmt,
+       T_DropWarehouseStmt,
+       T_AddForeignSegStmt,
+
+       /*
+        * TAGS FOR PARSE TREE NODES (parsenodes.h)
+        */
+       T_A_Expr,
+       T_ColumnRef,
+       T_ParamRef,
+       T_A_Const,
+       T_FuncCall,
+       T_A_Star,
+       T_A_Indices,
+       T_A_Indirection,
+       T_A_ArrayExpr,
+       T_ResTarget,
+       T_MultiAssignRef,
+       T_TypeCast,
+       T_CollateClause,
+       T_SortBy,
+       T_WindowDef,
+       T_RangeSubselect,
+       T_RangeFunction,
+       T_RangeTableSample,
+       T_RangeTableFunc,
+       T_RangeTableFuncCol,
+       T_TypeName,
+       T_ColumnDef,
+       T_IndexElem,
+       T_StatsElem,
+       T_Constraint,
+       T_DefElem,
+       T_RangeTblEntry,
+       T_RangeTblFunction,
+       T_TableSampleClause,
+       T_WithCheckOption,
+       T_SortGroupClause,
+       T_GroupingSet,
+       T_WindowClause,
+       T_ObjectWithArgs,
+       T_AccessPriv,
+       T_CreateOpClassItem,
+       T_TableLikeClause,
+       T_FunctionParameter,
+       T_LockingClause,
+       T_RowMarkClause,
+       T_XmlSerialize,
+       T_WithClause,
+       T_InferClause,
+       T_OnConflictClause,
+       T_CTESearchClause,
+       T_CTECycleClause,
+       T_CommonTableExpr,
+       T_ColumnReferenceStorageDirective,
+       T_DistributionKeyElem,
+       T_RoleSpec,
+       T_TriggerTransition,
+       T_PartitionElem,
+       T_PartitionSpec,
+       T_PartitionBoundSpec,
+       T_PartitionRangeDatum,
+       T_PartitionCmd,
+       T_VacuumRelation,
+
+       T_Bitmapset,
+
+       /*
+        * TAGS FOR REPLICATION GRAMMAR PARSE NODES (replnodes.h)
+        */
+       T_IdentifySystemCmd,
+       T_BaseBackupCmd,
+       T_CreateReplicationSlotCmd,
+       T_DropReplicationSlotCmd,
+       T_StartReplicationCmd,
+       T_TimeLineHistoryCmd,
+       T_SQLCmd,
+
+       /*
+        * TAGS FOR RANDOM OTHER STUFF
+        *
+        * These are objects that aren't part of parse/plan/execute node tree
+        * structures, but we give them NodeTags anyway for identification
+        * purposes (usually because they are involved in APIs where we want to
+        * pass multiple object types through the same pointer).
+        */
+       T_TriggerData,                          /* in commands/trigger.h */
+       T_EventTriggerData,                     /* in commands/event_trigger.h 
*/
+       T_ReturnSetInfo,                        /* in nodes/execnodes.h */
+       T_WindowObjectData,                     /* private in nodeWindowAgg.c */
+       T_TIDBitmap,                            /* in nodes/tidbitmap.h */
+       T_InlineCodeBlock,                      /* in nodes/parsenodes.h */
+       T_FdwRoutine,                           /* in foreign/fdwapi.h */
+       T_IndexAmRoutine,                       /* in access/amapi.h */
+       T_TableAmRoutine,                       /* in access/tableam.h */
+       T_TsmRoutine,                           /* in access/tsmapi.h */
+       T_ForeignKeyCacheInfo,          /* in utils/rel.h */
+       T_CallContext,                          /* in nodes/parsenodes.h */
+       T_SupportRequestSimplify,       /* in nodes/supportnodes.h */
+       T_SupportRequestSelectivity,    /* in nodes/supportnodes.h */
+       T_SupportRequestCost,           /* in nodes/supportnodes.h */
+       T_SupportRequestRows,           /* in nodes/supportnodes.h */
+       T_SupportRequestIndexCondition  /* in nodes/supportnodes.h */
+
+       ,
+    T_StreamBitmap,             /* in nodes/tidbitmap.h */
+       T_FormatterData,            /* in access/formatter.h */
+       T_ExtProtocolData,          /* in access/extprotocol.h */
+       T_ExtProtocolValidatorData, /* in access/extprotocol.h */
+       T_ExternalScanInfo,                     /* in access/plannodes.h */
+       T_CookedConstraint,                     /* in catalog/heap.h */
+
+    /* CDB: tags for random other stuff */
+    T_CdbExplain_StatHdr = 1000,             /* in cdb/cdbexplain.c */
+       T_GpPolicy,                                     /* in 
catalog/gp_distribution_policy.h */
+       T_RetrieveStmt,
+       T_ReindexIndexInfo,                     /* in nodes/parsenodes.h */
+       T_EphemeralNamedRelationInfo, /* utils/queryenvironment.h */
+
 } NodeTag;
 
 /*
diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h
index 8946fbd087a..636cf8a6850 100644
--- a/src/include/nodes/pathnodes.h
+++ b/src/include/nodes/pathnodes.h
@@ -213,9 +213,6 @@ typedef struct PlannerGlobal
        /* highest plan node ID assigned */
        int                     lastPlanNodeId;
 
-       /* redo plan when TransactionXmin changes? */
-       bool            transientPlan;
-
        /* is plan specific to current role? */
        bool            dependsOnRole;
 
@@ -399,9 +396,6 @@ struct PlannerInfo
        /* list of active EquivalenceClasses */
        List       *eq_classes;
 
-       /* set true once ECs are canonical */
-       bool            ec_merging_done;
-
        List       *list_cteplaninfo; /* list of CtePlannerInfo, one for each 
CTE */
 
        /*
@@ -414,12 +408,6 @@ struct PlannerInfo
        /* list of "canonical" PathKeys */
        List       *canon_pathkeys;
 
-       /*
-        * list of OuterJoinClauseInfos for mergejoinable outer join clauses
-        * w/nonnullable var on left
-        */
-       List       *left_join_clauses;
-
        /*
         * list of OuterJoinClauseInfos for mergejoinable outer join clauses
         * w/nonnullable var on right
@@ -477,9 +465,6 @@ struct PlannerInfo
        /* allocated size of array */
        int                     placeholder_array_size 
pg_node_attr(read_write_ignore);
 
-       /* list of ForeignKeyOptInfos */
-       List       *fkey_list;
-
        /* desired pathkeys for query_planner() */
        List       *query_pathkeys;
 
@@ -489,8 +474,6 @@ struct PlannerInfo
        /* hint on where the result of the query will be needed. Null if not 
known */
        CdbPathLocus final_locus;
 
-       List       *initial_rels;       /* RelOptInfos we are now trying to 
join */
-
        /*
         * The number of elements in the group_pathkeys list which belong to the
         * GROUP BY clause.  Additional ones belong to ORDER BY / DISTINCT
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h
index d65293a0453..05d39a91193 100644
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -738,7 +738,6 @@ typedef struct IndexOnlyScan
        List       *indexorderby;       /* list of index ORDER BY exprs */
        List       *indextlist;         /* TargetEntry list describing index's 
cols */
        ScanDirection indexorderdir;    /* forward or backward or don't care */
-       List       *recheckqual;        /* index quals in recheckable form */
 } IndexOnlyScan;
 
 /*
diff --git a/src/include/nodes/value.h b/src/include/nodes/value.h
index b24c4c1afef..cd6b1229bca 100644
--- a/src/include/nodes/value.h
+++ b/src/include/nodes/value.h
@@ -76,6 +76,16 @@ typedef struct BitString
        char       *bsval;
 } BitString;
 
+typedef struct Value
+{
+       NodeTag         type;                   /* tag appropriately (eg. 
T_String) */
+       union ValUnion2
+       {
+               int                     ival;           /* machine integer */
+               char       *str;                /* string */
+       }                       val;
+} Value;
+
 #define intVal(v)              (castNode(Integer, v)->ival)
 #define floatVal(v)            atof(castNode(Float, v)->fval)
 #define boolVal(v)             (castNode(Boolean, v)->boolval)
diff --git a/src/include/port/pg_bitutils.h b/src/include/port/pg_bitutils.h
index 44c42ab3246..21a4fa03410 100644
--- a/src/include/port/pg_bitutils.h
+++ b/src/include/port/pg_bitutils.h
@@ -220,16 +220,6 @@ pg_nextpower2_64(uint64 num)
        return ((uint64) 1) << (pg_leftmost_one_pos64(num) + 1);
 }
 
-/*
- * pg_nextpower2_size_t
- *             Returns the next higher power of 2 above 'num', for a size_t 
input.
- */
-#if SIZEOF_SIZE_T == 4
-#define pg_nextpower2_size_t(num) pg_nextpower2_32(num)
-#else
-#define pg_nextpower2_size_t(num) pg_nextpower2_64(num)
-#endif
-
 /*
  * pg_prevpower2_32
  *             Returns the next lower power of 2 below 'num', or 'num' if it's
@@ -256,16 +246,6 @@ pg_prevpower2_64(uint64 num)
        return ((uint64) 1) << pg_leftmost_one_pos64(num);
 }
 
-/*
- * pg_prevpower2_size_t
- *             Returns the next lower power of 2 below 'num', for a size_t 
input.
- */
-#if SIZEOF_SIZE_T == 4
-#define pg_prevpower2_size_t(num) pg_prevpower2_32(num)
-#else
-#define pg_prevpower2_size_t(num) pg_prevpower2_64(num)
-#endif
-
 /*
  * pg_ceil_log2_32
  *             Returns equivalent of ceil(log2(num))
diff --git a/src/include/portability/instr_time.h 
b/src/include/portability/instr_time.h
index 4193ade6a91..4cae6a12e34 100644
--- a/src/include/portability/instr_time.h
+++ b/src/include/portability/instr_time.h
@@ -130,126 +130,6 @@ pg_clock_gettime_ns(void)
 
 #define INSTR_TIME_ASSIGN(x,y) ((x).tv_sec = (y).tv_sec, (x).tv_nsec = 
(y).tv_nsec)
 
-#define INSTR_TIME_ADD(x,y) \
-       do { \
-               (x).tv_sec += (y).tv_sec; \
-               (x).tv_nsec += (y).tv_nsec; \
-               /* Normalize */ \
-               while ((x).tv_nsec >= 1000000000) \
-               { \
-                       (x).tv_nsec -= 1000000000; \
-                       (x).tv_sec++; \
-               } \
-       } while (0)
-
-#define INSTR_TIME_SUBTRACT(x,y) \
-       do { \
-               (x).tv_sec -= (y).tv_sec; \
-               (x).tv_nsec -= (y).tv_nsec; \
-               /* Normalize */ \
-               while ((x).tv_nsec < 0) \
-               { \
-                       (x).tv_nsec += 1000000000; \
-                       (x).tv_sec--; \
-               } \
-       } while (0)
-
-#define INSTR_TIME_ACCUM_DIFF(x,y,z) \
-       do { \
-               (x).tv_sec += (y).tv_sec - (z).tv_sec; \
-               (x).tv_nsec += (y).tv_nsec - (z).tv_nsec; \
-               /* Normalize after each add to avoid overflow/underflow of 
tv_nsec */ \
-               while ((x).tv_nsec < 0) \
-               { \
-                       (x).tv_nsec += 1000000000; \
-                       (x).tv_sec--; \
-               } \
-               while ((x).tv_nsec >= 1000000000) \
-               { \
-                       (x).tv_nsec -= 1000000000; \
-                       (x).tv_sec++; \
-               } \
-       } while (0)
-
-#define INSTR_TIME_GET_DOUBLE(t) \
-       (((double) (t).tv_sec) + ((double) (t).tv_nsec) / 1000000000.0)
-
-#define INSTR_TIME_GET_MILLISEC(t) \
-       (((double) (t).tv_sec * 1000.0) + ((double) (t).tv_nsec) / 1000000.0)
-
-#define INSTR_TIME_GET_MICROSEC(t) \
-       (((uint64) (t).tv_sec * (uint64) 1000000) + (uint64) ((t).tv_nsec / 
1000))
-
-#else                                                  /* !HAVE_CLOCK_GETTIME 
*/
-
-/* Use gettimeofday() */
-
-#include <sys/time.h>
-
-typedef struct timeval instr_time;
-
-#define INSTR_TIME_IS_ZERO(t)  ((t).tv_usec == 0 && (t).tv_sec == 0)
-
-#define INSTR_TIME_SET_ZERO(t) ((t).tv_sec = 0, (t).tv_usec = 0)
-
-#define INSTR_TIME_SET_CURRENT(t)      gettimeofday(&(t), NULL)
-
-#define INSTR_TIME_SET_CURRENT_COARSE(t)       INSTR_TIME_SET_CURRENT(t)
-
-#define INSTR_TIME_ASSIGN(x,y) ((x).tv_sec = (y).tv_sec, (x).tv_usec = 
(y).tv_usec)
-
-#define INSTR_TIME_ADD(x,y) \
-       do { \
-               (x).tv_sec += (y).tv_sec; \
-               (x).tv_usec += (y).tv_usec; \
-               /* Normalize */ \
-               while ((x).tv_usec >= 1000000) \
-               { \
-                       (x).tv_usec -= 1000000; \
-                       (x).tv_sec++; \
-               } \
-       } while (0)
-
-#define INSTR_TIME_SUBTRACT(x,y) \
-       do { \
-               (x).tv_sec -= (y).tv_sec; \
-               (x).tv_usec -= (y).tv_usec; \
-               /* Normalize */ \
-               while ((x).tv_usec < 0) \
-               { \
-                       (x).tv_usec += 1000000; \
-                       (x).tv_sec--; \
-               } \
-       } while (0)
-
-#define INSTR_TIME_ACCUM_DIFF(x,y,z) \
-       do { \
-               (x).tv_sec += (y).tv_sec - (z).tv_sec; \
-               (x).tv_usec += (y).tv_usec - (z).tv_usec; \
-               /* Normalize after each add to avoid overflow/underflow of 
tv_usec */ \
-               while ((x).tv_usec < 0) \
-               { \
-                       (x).tv_usec += 1000000; \
-                       (x).tv_sec--; \
-               } \
-               while ((x).tv_usec >= 1000000) \
-               { \
-                       (x).tv_usec -= 1000000; \
-                       (x).tv_sec++; \
-               } \
-       } while (0)
-
-#define INSTR_TIME_GET_DOUBLE(t) \
-       (((double) (t).tv_sec) + ((double) (t).tv_usec) / 1000000.0)
-
-#define INSTR_TIME_GET_MILLISEC(t) \
-       (((double) (t).tv_sec * 1000.0) + ((double) (t).tv_usec) / 1000.0)
-
-#define INSTR_TIME_GET_MICROSEC(t) \
-       (((uint64) (t).tv_sec * (uint64) 1000000) + (uint64) (t).tv_usec)
-
-#endif                                                 /* HAVE_CLOCK_GETTIME */
-
 #define INSTR_TIME_GET_NANOSEC(t) \
        ((int64) (t).ticks)
 
diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h
index a1ea7501b62..2f5ba015a3e 100644
--- a/src/include/storage/lock.h
+++ b/src/include/storage/lock.h
@@ -428,7 +428,7 @@ typedef struct PROCLOCK
        dlist_node      procLink;               /* list link in PGPROC's list 
of proclocks */
        int                     nLocks;                 /* total number of 
times lock is held by
                                                                   this 
process, used by resource scheduler */
-       SHM_QUEUE       portalLinks;    /* list of ResPortalIncrements for this
+       dlist_node      portalLinks;    /* list of ResPortalIncrements for this
                                                                   proclock, 
used by resource scheduler */
 } PROCLOCK;
 
diff --git a/src/include/tcop/cmdtag.h b/src/include/tcop/cmdtag.h
index 1e7514dcff7..a2c74b97309 100644
--- a/src/include/tcop/cmdtag.h
+++ b/src/include/tcop/cmdtag.h
@@ -14,7 +14,7 @@
 #define CMDTAG_H
 
 /* buffer size required for command completion tags */
-#define COMPLETION_TAG_BUFSIZE 64
+#define COMPLETION_TAG_BUFSIZE 72
 
 #define PG_CMDTAG(tag, name, evtrgok, rwrok, rowcnt) \
        tag,
diff --git a/src/include/tcop/dest.h b/src/include/tcop/dest.h
index 2045b079e10..b3421fb32a0 100644
--- a/src/include/tcop/dest.h
+++ b/src/include/tcop/dest.h
@@ -71,10 +71,6 @@
 #include "tcop/cmdtag.h"
 
 
-/* buffer size to use for command completion tags */
-#define COMPLETION_TAG_BUFSIZE 72
-
-
 /* ----------------
  *             CommandDest is a simplistic means of identifying the desired
  *             destination.  Someday this will probably need to be improved.
diff --git a/src/include/utils/portal.h b/src/include/utils/portal.h
index 49a9539393c..fbdfbee82d8 100644
--- a/src/include/utils/portal.h
+++ b/src/include/utils/portal.h
@@ -221,9 +221,6 @@ typedef struct PortalData
        TimestampTz creation_time;      /* time at which this portal was 
defined */
        bool            visible;                /* include this portal in 
pg_cursors? */
 
-       /* Stuff added at the end to avoid ABI break in stable branches: */
-       int                     createLevel;    /* creating subxact's nesting 
level */
-
        /* MPP: is this portal a CURSOR, or protocol level portal? */
        bool            is_extended_query; /* simple or extended query 
protocol? */
 }                      PortalData;
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index dfe72fa57dc..b1cf6ec01f4 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.h
@@ -699,7 +699,8 @@ static inline SMgrRelation
 RelationGetSmgr(Relation rel)
 {
        if (unlikely(rel->rd_smgr == NULL))
-               smgrsetowner(&(rel->rd_smgr), smgropen(rel->rd_locator, 
rel->rd_backend));
+               smgrsetowner(&(rel->rd_smgr), smgropen(rel->rd_locator, 
rel->rd_backend,
+                                                                               
           SMGR_MD, rel));
        return rel->rd_smgr;
 }
 


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


Reply via email to