You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by ji...@apache.org on 2025/01/16 13:15:56 UTC

(cloudberry) 13/35: Remove unused Orca partitioning code in Orca

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

jiaqizho pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git

commit fa59b58c8141d875ad077c301d3a69c65d0e863a
Author: Chris Hajas <ch...@vmware.com>
AuthorDate: Fri Feb 3 14:27:21 2023 -0800

    Remove unused Orca partitioning code in Orca
    
    This is unused code that was used with the old partitioning architecture
    in Orca. Since we now do static elimination within Orca, this is no
    longer needed. Also resolves a fixme
---
 .../gpopt/translate/CTranslatorDXLToPlStmt.cpp     |  10 +-
 .../gpopt/translate/CTranslatorDXLToScalar.cpp     |  10 -
 .../gpopt/translate/CTranslatorRelcacheToDXL.cpp   |  35 --
 src/backend/gpopt/translate/CTranslatorUtils.cpp   |   9 -
 .../libgpopt/include/gpopt/operators/CExpression.h |   5 -
 .../gpopt/translate/CTranslatorExprToDXLUtils.h    |  57 ---
 .../gporca/libgpopt/src/operators/CExpression.cpp  |  37 --
 .../src/translate/CTranslatorExprToDXL.cpp         |   3 -
 .../src/translate/CTranslatorExprToDXLUtils.cpp    | 476 ---------------------
 .../include/naucrates/dxl/operators/CDXLOperator.h |   6 -
 .../naucrates/dxl/operators/CDXLScalarPartBound.h  | 107 -----
 .../dxl/operators/CDXLScalarPartBoundInclusion.h   | 101 -----
 .../dxl/operators/CDXLScalarPartBoundOpen.h        | 101 -----
 .../dxl/operators/CDXLScalarPartDefault.h          |  88 ----
 .../dxl/operators/CDXLScalarPartListNullTest.h     |  68 ---
 .../dxl/operators/CDXLScalarPartListValues.h       |  76 ----
 .../dxl/parser/CParseHandlerScalarPartBound.h      |  63 ---
 .../parser/CParseHandlerScalarPartBoundInclusion.h |  64 ---
 .../dxl/parser/CParseHandlerScalarPartBoundOpen.h  |  64 ---
 .../dxl/parser/CParseHandlerScalarPartDefault.h    |  64 ---
 .../include/naucrates/dxl/parser/parsehandlers.h   |   6 -
 .../include/naucrates/dxl/xml/dxltokens.h          |   6 -
 .../src/operators/CDXLScalarPartBound.cpp          | 144 -------
 .../src/operators/CDXLScalarPartBoundInclusion.cpp | 111 -----
 .../src/operators/CDXLScalarPartBoundOpen.cpp      | 112 -----
 .../src/operators/CDXLScalarPartDefault.cpp        | 106 -----
 .../src/operators/CDXLScalarPartListNullTest.cpp   | 103 -----
 .../src/operators/CDXLScalarPartListValues.cpp     | 126 ------
 .../gporca/libnaucrates/src/operators/Makefile     |   6 -
 .../src/parser/CParseHandlerFactory.cpp            |  67 ---
 .../src/parser/CParseHandlerScalarPartBound.cpp    | 108 -----
 .../CParseHandlerScalarPartBoundInclusion.cpp      | 106 -----
 .../parser/CParseHandlerScalarPartBoundOpen.cpp    | 106 -----
 .../src/parser/CParseHandlerScalarPartDefault.cpp  | 101 -----
 .../parser/CParseHandlerScalarPartListNullTest.cpp |  82 ----
 .../parser/CParseHandlerScalarPartListValues.cpp   |  84 ----
 .../gporca/libnaucrates/src/parser/Makefile        |   6 -
 .../gporca/libnaucrates/src/xml/dxltokens.cpp      |   6 -
 38 files changed, 1 insertion(+), 2829 deletions(-)

diff --git a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
index 7b9113cdf3..090e544a04 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
@@ -29,12 +29,9 @@ extern "C" {
 #include "nodes/primnodes.h"
 #include "partitioning/partdesc.h"
 #include "storage/lmgr.h"
-#include "utils/partcache.h"
-#if 0
-#include "cdb/partitionselection.h"
-#endif
 #include "utils/guc.h"
 #include "utils/lsyscache.h"
+#include "utils/partcache.h"
 #include "utils/rel.h"
 #include "utils/typcache.h"
 #include "utils/uri.h"
@@ -245,11 +242,6 @@ CTranslatorDXLToPlStmt::GetPlannedStmtFromDXL(const CDXLNode *dxlnode,
 	planned_stmt->subplans = m_dxl_to_plstmt_context->GetSubplanEntriesList();
 	planned_stmt->planTree = plan;
 
-#if 0
-	// store partitioned table indexes in planned stmt
-	planned_stmt->queryPartOids = m_dxl_to_plstmt_context->GetPartitionedTablesList();
-	planned_stmt->numSelectorsPerScanId = m_dxl_to_plstmt_context->GetNumPartitionSelectorsList();
-#endif
 	planned_stmt->canSetTag = can_set_tag;
 	planned_stmt->relationOids = oids_list;
 
diff --git a/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp b/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
index 9720525e51..f4a1ed2335 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
@@ -229,16 +229,6 @@ CTranslatorDXLToScalar::TranslateDXLToScalar(const CDXLNode *dxlnode,
 			return TranslateDXLScalarSortGroupClauseToScalar(dxlnode,
 															 colid_var);
 		}
-#if 0
-		// GPDB_12_MERGE_FIXME: These were removed from the server with the v12 merge
-		// of upstream partitioning. Need something to replace? Need to rip out from GPORCA?
-		case EdxlopScalarPartDefault: { return TranslateDXLScalarPartDefaultToScalar(dxlnode, colid_var); }
-		case EdxlopScalarPartBound: { return TranslateDXLScalarPartBoundToScalar(dxlnode, colid_var); }
-		case EdxlopScalarPartBoundInclusion: { return TranslateDXLScalarPartBoundInclusionToScalar(dxlnode, colid_var); }
-		case EdxlopScalarPartBoundOpen: { return TranslateDXLScalarPartBoundOpenToScalar(dxlnode, colid_var); }
-		case EdxlopScalarPartListValues: { return TranslateDXLScalarPartListValuesToScalar(dxlnode, colid_var); }
-		case EdxlopScalarPartListNullTest: { return TranslateDXLScalarPartListNullTestToScalar(dxlnode, colid_var); }
-#endif
 	}
 }
 
diff --git a/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp b/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp
index afaf8f434e..f9cb77c903 100644
--- a/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp
+++ b/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp
@@ -1012,41 +1012,6 @@ CTranslatorRelcacheToDXL::RetrieveIndex(CMemoryPool *mp,
 	return index;
 }
 
-#if 0
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorRelcacheToDXL::LevelHasDefaultPartition
-//
-//	@doc:
-//		Check whether the default partition at level one is included
-//
-//---------------------------------------------------------------------------
-BOOL
-CTranslatorRelcacheToDXL::LevelHasDefaultPartition
-	(
-	List *default_levels,
-	ULONG level
-	)
-{
-	if (NIL == default_levels)
-	{
-		return false;
-	}
-	
-	ListCell *lc = NULL;
-	ForEach (lc, default_levels)
-	{
-		ULONG default_level = (ULONG) lfirst_int(lc);
-		if (level == default_level)
-		{
-			return true;
-		}
-	}
-	
-	return false;
-}
-#endif
-
 //---------------------------------------------------------------------------
 //	@function:
 //		CTranslatorRelcacheToDXL::ComputeIncludedCols
diff --git a/src/backend/gpopt/translate/CTranslatorUtils.cpp b/src/backend/gpopt/translate/CTranslatorUtils.cpp
index aab7df803c..27390eb5e4 100644
--- a/src/backend/gpopt/translate/CTranslatorUtils.cpp
+++ b/src/backend/gpopt/translate/CTranslatorUtils.cpp
@@ -121,15 +121,6 @@ CTranslatorUtils::GetTableDescr(CMemoryPool *mp, CMDAccessor *md_accessor,
 	// generate an MDId for the table desc.
 	OID rel_oid = rte->relid;
 
-#if 0
-	if (gpdb::HasExternalPartition(rel_oid))
-	{
-		// fall back to the planner for queries with partition tables that has an external table in one of its leaf
-		// partitions.
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiQuery2DXLUnsupportedFeature, GPOS_WSZ_LIT("Query over external partitions"));
-	}
-#endif
-
 	CMDIdGPDB *mdid = GPOS_NEW(mp) CMDIdGPDB(IMDId::EmdidRel, rel_oid);
 
 	const IMDRelation *rel = md_accessor->RetrieveRel(mdid);
diff --git a/src/backend/gporca/libgpopt/include/gpopt/operators/CExpression.h b/src/backend/gporca/libgpopt/include/gpopt/operators/CExpression.h
index a1888eab5f..16b5d105f6 100644
--- a/src/backend/gporca/libgpopt/include/gpopt/operators/CExpression.h
+++ b/src/backend/gporca/libgpopt/include/gpopt/operators/CExpression.h
@@ -108,11 +108,6 @@ private:
 
 #endif	// GPOS_DEBUG
 
-#if 0
-	// check if the expression satisfies partition enforcer condition
-	BOOL FValidPartEnforcers(CDrvdPropCtxtPlan *pdpctxtplan);
-#endif
-
 	// check if the distributions of all children are compatible
 	BOOL FValidChildrenDistribution(CDrvdPropCtxtPlan *pdpctxtplan);
 
diff --git a/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXLUtils.h b/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXLUtils.h
index 9e94283069..ddc42e1183 100644
--- a/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXLUtils.h
+++ b/src/backend/gporca/libgpopt/include/gpopt/translate/CTranslatorExprToDXLUtils.h
@@ -53,15 +53,6 @@ using namespace gpnaucrates;
 class CTranslatorExprToDXLUtils
 {
 private:
-	// construct a scalar comparison of the given type between the
-	// column with the given col id and the scalar expression
-	static CDXLNode *PdxlnCmp(CMemoryPool *mp, CMDAccessor *md_accessor,
-							  ULONG ulPartLevel, BOOL fLowerBound,
-							  CDXLNode *pdxlnScalar, IMDType::ECmpType cmp_type,
-							  IMDId *pmdidTypePartKey, IMDId *pmdidTypeExpr,
-							  IMDId *pmdidTypeCastExpr, IMDId *mdid_cast_func);
-
-
 	// create a column reference
 	static CColRef *PcrCreate(CMemoryPool *mp, CMDAccessor *md_accessor,
 							  CColumnFactory *col_factory, IMDId *mdid,
@@ -101,54 +92,6 @@ public:
 	// construct a default properties container
 	static CDXLPhysicalProperties *GetProperties(CMemoryPool *mp);
 
-	// create a scalar const value expression for the given bool value
-	static CDXLNode *PdxlnBoolConst(CMemoryPool *mp, CMDAccessor *md_accessor,
-									BOOL value);
-
-	// create a scalar const value expression for the given int4 value
-	static CDXLNode *PdxlnInt4Const(CMemoryPool *mp, CMDAccessor *md_accessor,
-									INT val);
-
-	// construct a filter node for a list partition predicate
-	static CDXLNode *PdxlnListFilterScCmp(
-		CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnPartKey,
-		CDXLNode *pdxlnScalar, IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther,
-		IMDType::ECmpType cmp_type, ULONG ulPartLevel, BOOL fHasDefaultPart);
-
-	// construct a DXL node for the part key portion of the list partition filter
-	static CDXLNode *PdxlnListFilterPartKey(CMemoryPool *mp,
-											CMDAccessor *md_accessor,
-											CExpression *pexprPartKey,
-											IMDId *pmdidTypePartKey,
-											ULONG ulPartLevel);
-
-	// construct a filter node for a range predicate
-	static CDXLNode *PdxlnRangeFilterScCmp(
-		CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnScalar,
-		IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther,
-		IMDId *pmdidTypeCastExpr, IMDId *mdid_cast_func,
-		IMDType::ECmpType cmp_type, ULONG ulPartLevel);
-
-	// construct a range filter for an equality comparison
-	static CDXLNode *PdxlnRangeFilterEqCmp(
-		CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnScalar,
-		IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther,
-		IMDId *pmdidTypeCastExpr, IMDId *mdid_cast_func, ULONG ulPartLevel);
-
-	// construct a predicate for the lower or upper bound of a partition
-	static CDXLNode *PdxlnRangeFilterPartBound(
-		CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnScalar,
-		IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther,
-		IMDId *pmdidTypeCastExpr, IMDId *mdid_cast_func, ULONG ulPartLevel,
-		ULONG fLowerBound, IMDType::ECmpType cmp_type);
-
-	// construct predicates to cover the cases of default partition and
-	// open-ended partitions if necessary
-	static CDXLNode *PdxlnRangeFilterDefaultAndOpenEnded(
-		CMemoryPool *mp, ULONG ulPartLevel, BOOL fLTComparison,
-		BOOL fGTComparison, BOOL fEQComparison, BOOL fDefaultPart);
-
-
 	// check if the DXL Node is a scalar const TRUE
 	static BOOL FScalarConstTrue(CMDAccessor *md_accessor, CDXLNode *dxlnode);
 
diff --git a/src/backend/gporca/libgpopt/src/operators/CExpression.cpp b/src/backend/gporca/libgpopt/src/operators/CExpression.cpp
index 8de663ffa7..56666f59b8 100644
--- a/src/backend/gporca/libgpopt/src/operators/CExpression.cpp
+++ b/src/backend/gporca/libgpopt/src/operators/CExpression.cpp
@@ -1330,43 +1330,6 @@ CExpression::FValidChildrenDistribution(CDrvdPropCtxtPlan *pdpctxtplan)
 	return true;
 }
 
-#if 0
-//---------------------------------------------------------------------------
-//	@function:
-//		CExpression::FValidPartEnforcers
-//
-//	@doc:
-//		Check if the expression is valid with respect to the partition enforcers.
-//
-//---------------------------------------------------------------------------
-BOOL
-CExpression::FValidPartEnforcers(CDrvdPropCtxtPlan *pdpctxtplan)
-{
-	GPOS_ASSERT(Pop()->FPhysical());
-
-	CPartInfo *ppartinfo = DerivePartitionInfo();
-	GPOS_ASSERT(NULL != ppartinfo);
-
-	if (0 == ppartinfo->UlConsumers())
-	{
-		// no part consumers found
-		return true;
-	}
-
-	// retrieve plan properties
-	CDrvdPropPlan *pdpplan = CDrvdPropPlan::Pdpplan(PdpDerive(pdpctxtplan));
-
-	if (CUtils::FPhysicalMotion(Pop()) &&
-		pdpplan->Ppim()->FContainsUnresolved())
-	{
-		// prohibit Motion on top of unresolved partition consumers
-		return false;
-	}
-
-	return true;
-}
-#endif
-
 CColRefSet *
 CExpression::DeriveOuterReferences()
 {
diff --git a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
index ca616a758a..d1edb4bb22 100644
--- a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
+++ b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
@@ -157,9 +157,6 @@
 #include "naucrates/dxl/operators/CDXLScalarOneTimeFilter.h"
 #include "naucrates/dxl/operators/CDXLScalarOpExpr.h"
 #include "naucrates/dxl/operators/CDXLScalarOpList.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBound.h"
-#include "naucrates/dxl/operators/CDXLScalarPartDefault.h"
-#include "naucrates/dxl/operators/CDXLScalarPartListNullTest.h"
 #include "naucrates/dxl/operators/CDXLScalarProjElem.h"
 #include "naucrates/dxl/operators/CDXLScalarProjList.h"
 #include "naucrates/dxl/operators/CDXLScalarRecheckCondFilter.h"
diff --git a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXLUtils.cpp b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXLUtils.cpp
index 92b0fe6aed..599fe7fa1b 100644
--- a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXLUtils.cpp
+++ b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXLUtils.cpp
@@ -36,11 +36,6 @@
 #include "naucrates/dxl/operators/CDXLScalarArrayComp.h"
 #include "naucrates/dxl/operators/CDXLScalarCast.h"
 #include "naucrates/dxl/operators/CDXLScalarIdent.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBound.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBoundInclusion.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBoundOpen.h"
-#include "naucrates/dxl/operators/CDXLScalarPartDefault.h"
-#include "naucrates/dxl/operators/CDXLScalarPartListValues.h"
 #include "naucrates/dxl/operators/CDXLScalarProjElem.h"
 #include "naucrates/dxl/operators/CDXLScalarProjList.h"
 #include "naucrates/dxl/operators/CDXLScalarValuesList.h"
@@ -58,417 +53,6 @@ using namespace gpdxl;
 using namespace gpopt;
 using namespace gpnaucrates;
 
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnInt4Const
-//
-//	@doc:
-// 		Construct a scalar const value expression for the given INT value
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnInt4Const(CMemoryPool *mp,
-										  CMDAccessor *md_accessor, INT val)
-{
-	GPOS_ASSERT(nullptr != mp);
-
-	const IMDTypeInt4 *pmdtypeint4 = md_accessor->PtMDType<IMDTypeInt4>();
-	pmdtypeint4->MDId()->AddRef();
-
-	CDXLDatumInt4 *dxl_datum = GPOS_NEW(mp)
-		CDXLDatumInt4(mp, pmdtypeint4->MDId(), false /*is_null*/, val);
-	CDXLScalarConstValue *pdxlConst =
-		GPOS_NEW(mp) CDXLScalarConstValue(mp, dxl_datum);
-
-	return GPOS_NEW(mp) CDXLNode(mp, pdxlConst);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnBoolConst
-//
-//	@doc:
-// 		Construct a scalar const value expression for the given BOOL value
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnBoolConst(CMemoryPool *mp,
-										  CMDAccessor *md_accessor, BOOL value)
-{
-	GPOS_ASSERT(nullptr != mp);
-
-	const IMDTypeBool *pmdtype = md_accessor->PtMDType<IMDTypeBool>();
-	pmdtype->MDId()->AddRef();
-
-	CDXLDatumBool *dxl_datum = GPOS_NEW(mp)
-		CDXLDatumBool(mp, pmdtype->MDId(), false /*is_null*/, value);
-	CDXLScalarConstValue *pdxlConst =
-		GPOS_NEW(mp) CDXLScalarConstValue(mp, dxl_datum);
-
-	return GPOS_NEW(mp) CDXLNode(mp, pdxlConst);
-}
-
-
-
-// construct a DXL node for the part key portion of the list partition filter
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnListFilterPartKey(CMemoryPool *mp,
-												  CMDAccessor *md_accessor,
-												  CExpression *pexprPartKey,
-												  IMDId *pmdidTypePartKey,
-												  ULONG ulPartLevel)
-{
-	GPOS_ASSERT(nullptr != pexprPartKey);
-	GPOS_ASSERT(nullptr != pmdidTypePartKey);
-	GPOS_ASSERT(CScalar::PopConvert(pexprPartKey->Pop())
-					->MdidType()
-					->Equals(pmdidTypePartKey));
-
-	CDXLNode *pdxlnPartKey = nullptr;
-
-	if (CUtils::FScalarIdent(pexprPartKey))
-	{
-		// Simple Scalar Ident - create a ScalarPartListValues from the partition key
-		IMDId *pmdidResultArray =
-			md_accessor->RetrieveType(pmdidTypePartKey)->GetArrayTypeMdid();
-		pmdidResultArray->AddRef();
-		pmdidTypePartKey->AddRef();
-
-		pdxlnPartKey = GPOS_NEW(mp) CDXLNode(
-			mp, GPOS_NEW(mp) CDXLScalarPartListValues(
-					mp, ulPartLevel, pmdidResultArray, pmdidTypePartKey));
-	}
-	else if (CScalarIdent::FCastedScId(pexprPartKey) ||
-			 CScalarIdent::FAllowedFuncScId(pexprPartKey))
-	{
-		IMDId *pmdidDestElem = nullptr;
-		IMDId *pmdidArrayCastFunc = nullptr;
-		ExtractCastFuncMdids(pexprPartKey->Pop(), &pmdidDestElem,
-							 &pmdidArrayCastFunc);
-		IMDId *pmdidDestArray =
-			md_accessor->RetrieveType(pmdidDestElem)->GetArrayTypeMdid();
-
-		CScalarIdent *pexprScalarIdent =
-			CScalarIdent::PopConvert((*pexprPartKey)[0]->Pop());
-		IMDId *pmdidSrcElem = pexprScalarIdent->MdidType();
-		IMDId *pmdidSrcArray =
-			md_accessor->RetrieveType(pmdidSrcElem)->GetArrayTypeMdid();
-		pmdidSrcArray->AddRef();
-		pmdidSrcElem->AddRef();
-		CDXLNode *pdxlnPartKeyIdent = GPOS_NEW(mp)
-			CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartListValues(
-							 mp, ulPartLevel, pmdidSrcArray, pmdidSrcElem));
-
-		pmdidDestArray->AddRef();
-		pmdidArrayCastFunc->AddRef();
-		pdxlnPartKey = GPOS_NEW(mp)
-			CDXLNode(mp,
-					 GPOS_NEW(mp) CDXLScalarArrayCoerceExpr(
-						 mp, pmdidArrayCastFunc, pmdidDestArray,
-						 default_type_modifier, true, /* is_explicit */
-						 EdxlcfDontCare, -1			  /* location */
-						 ),
-					 pdxlnPartKeyIdent);
-	}
-	else
-	{
-		// Not supported - should be unreachable.
-		CWStringDynamic *str = GPOS_NEW(mp) CWStringDynamic(mp);
-		str->AppendFormat(
-			GPOS_WSZ_LIT(
-				"Unsupported part filter operator for list partitions : %ls"),
-			pexprPartKey->Pop()->SzId());
-		GPOS_THROW_EXCEPTION(gpopt::ExmaGPOPT, gpopt::ExmiUnsupportedOp,
-							 str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != pdxlnPartKey);
-
-	return pdxlnPartKey;
-}
-
-
-// Construct a predicate node for a list partition filter
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnListFilterScCmp(
-	CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnPartKey,
-	CDXLNode *pdxlnOther, IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther,
-	IMDType::ECmpType cmp_type, ULONG ulPartLevel, BOOL fHasDefaultPart)
-{
-	IMDId *pmdidScCmp = nullptr;
-
-	pmdidScCmp = CMDAccessorUtils::GetScCmpMdIdConsiderCasts(
-		md_accessor, pmdidTypeOther, pmdidTypePartKey, cmp_type);
-
-	const IMDScalarOp *md_scalar_op = md_accessor->RetrieveScOp(pmdidScCmp);
-	const CWStringConst *pstrScCmp = md_scalar_op->Mdname().GetMDName();
-
-	pmdidScCmp->AddRef();
-	CDXLNode *pdxlnScCmp = GPOS_NEW(mp)
-		CDXLNode(mp,
-				 GPOS_NEW(mp) CDXLScalarArrayComp(
-					 mp, pmdidScCmp,
-					 GPOS_NEW(mp) CWStringConst(mp, pstrScCmp->GetBuffer()),
-					 Edxlarraycomptypeany),
-				 pdxlnOther, pdxlnPartKey);
-
-	if (fHasDefaultPart)
-	{
-		CDXLNode *pdxlnDefault = GPOS_NEW(mp)
-			CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartDefault(mp, ulPartLevel));
-		return GPOS_NEW(mp)
-			CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxlor),
-					 pdxlnScCmp, pdxlnDefault);
-	}
-	else
-	{
-		return pdxlnScCmp;
-	}
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnRangeFilterScCmp
-//
-//	@doc:
-// 		Construct a Result node for a filter min <= Scalar or max >= Scalar
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnRangeFilterScCmp(
-	CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnScalar,
-	IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther, IMDId *pmdidTypeCastExpr,
-	IMDId *mdid_cast_func, IMDType::ECmpType cmp_type, ULONG ulPartLevel)
-{
-	if (IMDType::EcmptEq == cmp_type)
-	{
-		return PdxlnRangeFilterEqCmp(
-			mp, md_accessor, pdxlnScalar, pmdidTypePartKey, pmdidTypeOther,
-			pmdidTypeCastExpr, mdid_cast_func, ulPartLevel);
-	}
-
-	BOOL fLowerBound = false;
-	IMDType::ECmpType ecmptScCmp = IMDType::EcmptOther;
-
-	if (IMDType::EcmptLEq == cmp_type || IMDType::EcmptL == cmp_type)
-	{
-		// partkey </<= other: construct condition min < other
-		fLowerBound = true;
-		ecmptScCmp = IMDType::EcmptL;
-	}
-	else if (IMDType::EcmptGEq == cmp_type || IMDType::EcmptG == cmp_type)
-	{
-		// partkey >/>= other: construct condition max > other
-		ecmptScCmp = IMDType::EcmptG;
-	}
-	else
-	{
-		GPOS_ASSERT(IMDType::EcmptNEq == cmp_type);
-		ecmptScCmp = IMDType::EcmptNEq;
-	}
-
-	if (IMDType::EcmptLEq != cmp_type && IMDType::EcmptGEq != cmp_type)
-	{
-		// scalar comparison does not include equality: no need to consider part constraint boundaries
-		CDXLNode *pdxlnPredicateExclusive =
-			PdxlnCmp(mp, md_accessor, ulPartLevel, fLowerBound, pdxlnScalar,
-					 ecmptScCmp, pmdidTypePartKey, pmdidTypeOther,
-					 pmdidTypeCastExpr, mdid_cast_func);
-		return pdxlnPredicateExclusive;
-		// This is also correct for lossy casts. when we have predicate such as
-		// float::int < 2, we dont want to select values such as 1.7 which cast to 2.
-		// So, in this case, we should check lower bound::int < 2
-	}
-
-	CDXLNode *pdxlnInclusiveCmp = PdxlnCmp(
-		mp, md_accessor, ulPartLevel, fLowerBound, pdxlnScalar, cmp_type,
-		pmdidTypePartKey, pmdidTypeOther, pmdidTypeCastExpr, mdid_cast_func);
-
-	if (nullptr != mdid_cast_func && mdid_cast_func->IsValid() &&
-		md_accessor->RetrieveFunc(mdid_cast_func)
-			->IsAllowedForPS())	 // is a lossy cast
-	{
-		// In case of lossy casts, we don't want to eliminate partitions with
-		// exclusive ends when the predicate is on that end
-		// A partition such as [1,2) should be selected for float::int = 2,
-		// but shouldn't be selected for float = 2.0
-		return pdxlnInclusiveCmp;
-	}
-
-	pdxlnScalar->AddRef();
-	CDXLNode *pdxlnPredicateExclusive = PdxlnCmp(
-		mp, md_accessor, ulPartLevel, fLowerBound, pdxlnScalar, ecmptScCmp,
-		pmdidTypePartKey, pmdidTypeOther, pmdidTypeCastExpr, mdid_cast_func);
-
-	CDXLNode *pdxlnInclusiveBoolPredicate =
-		GPOS_NEW(mp) CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartBoundInclusion(
-									  mp, ulPartLevel, fLowerBound));
-
-	CDXLNode *pdxlnPredicateInclusive =
-		GPOS_NEW(mp) CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxland),
-							  pdxlnInclusiveCmp, pdxlnInclusiveBoolPredicate);
-
-	// return the final predicate in the form "(point <= col and colIncluded) or point < col" / "(point >= col and colIncluded) or point > col"
-	return GPOS_NEW(mp)
-		CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxlor),
-				 pdxlnPredicateInclusive, pdxlnPredicateExclusive);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnRangeFilterEqCmp
-//
-//	@doc:
-// 		Construct a predicate node for a filter min <= Scalar and max >= Scalar
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnRangeFilterEqCmp(
-	CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnScalar,
-	IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther, IMDId *pmdidTypeCastExpr,
-	IMDId *mdid_cast_func, ULONG ulPartLevel)
-{
-	CDXLNode *pdxlnPredicateMin = PdxlnRangeFilterPartBound(
-		mp, md_accessor, pdxlnScalar, pmdidTypePartKey, pmdidTypeOther,
-		pmdidTypeCastExpr, mdid_cast_func, ulPartLevel, true /*fLowerBound*/,
-		IMDType::EcmptL);
-	pdxlnScalar->AddRef();
-	CDXLNode *pdxlnPredicateMax = PdxlnRangeFilterPartBound(
-		mp, md_accessor, pdxlnScalar, pmdidTypePartKey, pmdidTypeOther,
-		pmdidTypeCastExpr, mdid_cast_func, ulPartLevel, false /*fLowerBound*/,
-		IMDType::EcmptG);
-
-	// return the conjunction of the predicate for the lower and upper bounds
-	return GPOS_NEW(mp)
-		CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxland),
-				 pdxlnPredicateMin, pdxlnPredicateMax);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnRangeFilterPartBound
-//
-//	@doc:
-// 		Construct a predicate for a partition bound of one of the two forms
-//		(min <= Scalar and minincl) or min < Scalar
-//		(max >= Scalar and maxinc) or Max > Scalar
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnRangeFilterPartBound(
-	CMemoryPool *mp, CMDAccessor *md_accessor, CDXLNode *pdxlnScalar,
-	IMDId *pmdidTypePartKey, IMDId *pmdidTypeOther, IMDId *pmdidTypeCastExpr,
-	IMDId *mdid_cast_func, ULONG ulPartLevel, ULONG fLowerBound,
-	IMDType::ECmpType cmp_type)
-{
-	GPOS_ASSERT(IMDType::EcmptL == cmp_type || IMDType::EcmptG == cmp_type);
-
-	IMDType::ECmpType ecmptInc = IMDType::EcmptLEq;
-	if (IMDType::EcmptG == cmp_type)
-	{
-		ecmptInc = IMDType::EcmptGEq;
-	}
-
-	CDXLNode *pdxlnInclusiveCmp = PdxlnCmp(
-		mp, md_accessor, ulPartLevel, fLowerBound, pdxlnScalar, ecmptInc,
-		pmdidTypePartKey, pmdidTypeOther, pmdidTypeCastExpr, mdid_cast_func);
-
-	if (nullptr != mdid_cast_func && mdid_cast_func->IsValid() &&
-		md_accessor->RetrieveFunc(mdid_cast_func)
-			->IsAllowedForPS())	 // is a lossy cast
-	{
-		// In case of lossy casts, we don't want to eliminate partitions with
-		// exclusive ends when the predicate is on that end
-		// A partition such as [1,2) should be selected for float::int = 2
-		// but shouldn't be selected for float = 2.0
-		return pdxlnInclusiveCmp;
-	}
-
-	pdxlnScalar->AddRef();
-
-	CDXLNode *pdxlnPredicateExclusive = PdxlnCmp(
-		mp, md_accessor, ulPartLevel, fLowerBound, pdxlnScalar, cmp_type,
-		pmdidTypePartKey, pmdidTypeOther, pmdidTypeCastExpr, mdid_cast_func);
-
-	CDXLNode *pdxlnInclusiveBoolPredicate =
-		GPOS_NEW(mp) CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartBoundInclusion(
-									  mp, ulPartLevel, fLowerBound));
-
-	CDXLNode *pdxlnPredicateInclusive =
-		GPOS_NEW(mp) CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxland),
-							  pdxlnInclusiveCmp, pdxlnInclusiveBoolPredicate);
-
-	// return the final predicate in the form "(point <= col and colIncluded) or point < col" / "(point >= col and colIncluded) or point > col"
-	return GPOS_NEW(mp)
-		CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxlor),
-				 pdxlnPredicateInclusive, pdxlnPredicateExclusive);
-}
-
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnRangeFilterDefaultAndOpenEnded
-//
-//	@doc:
-//		Construct predicates to cover the cases of default partition and
-//		open-ended partitions if necessary
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnRangeFilterDefaultAndOpenEnded(
-	CMemoryPool *mp, ULONG ulPartLevel, BOOL fLTComparison, BOOL fGTComparison,
-	BOOL fEQComparison, BOOL fDefaultPart)
-{
-	CDXLNode *pdxlnResult = nullptr;
-	if (fLTComparison || fEQComparison)
-	{
-		// add a condition to cover the cases of open-ended interval (-inf, x)
-		pdxlnResult = GPOS_NEW(mp)
-			CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartBoundOpen(
-							 mp, ulPartLevel, true /*is_lower_bound*/));
-	}
-
-	if (fGTComparison || fEQComparison)
-	{
-		// add a condition to cover the cases of open-ended interval (x, inf)
-		CDXLNode *pdxlnOpenMax = GPOS_NEW(mp)
-			CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartBoundOpen(
-							 mp, ulPartLevel, false /*is_lower_bound*/));
-
-		// construct a boolean OR expression over the two expressions
-		if (nullptr != pdxlnResult)
-		{
-			pdxlnResult = GPOS_NEW(mp)
-				CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxlor),
-						 pdxlnResult, pdxlnOpenMax);
-		}
-		else
-		{
-			pdxlnResult = pdxlnOpenMax;
-		}
-	}
-
-	if (fDefaultPart)
-	{
-		// add a condition to cover the cases of default partition
-		CDXLNode *pdxlnDefault = GPOS_NEW(mp)
-			CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartDefault(mp, ulPartLevel));
-
-		if (nullptr != pdxlnResult)
-		{
-			pdxlnResult = GPOS_NEW(mp)
-				CDXLNode(mp, GPOS_NEW(mp) CDXLScalarBoolExpr(mp, Edxlor),
-						 pdxlnDefault, pdxlnResult);
-		}
-		else
-		{
-			pdxlnResult = pdxlnDefault;
-		}
-	}
-
-	return pdxlnResult;
-}
-
 
 //---------------------------------------------------------------------------
 //	@function:
@@ -503,66 +87,6 @@ CTranslatorExprToDXLUtils::PdxlpropCopy(CMemoryPool *mp, CDXLNode *dxlnode)
 }
 
 
-//---------------------------------------------------------------------------
-//	@function:
-//		CTranslatorExprToDXLUtils::PdxlnCmp
-//
-//	@doc:
-//		Construct a scalar comparison of the given type between the column with
-//		the given col id and the scalar expression
-//
-//---------------------------------------------------------------------------
-CDXLNode *
-CTranslatorExprToDXLUtils::PdxlnCmp(
-	CMemoryPool *mp, CMDAccessor *md_accessor, ULONG ulPartLevel,
-	BOOL fLowerBound, CDXLNode *pdxlnScalar, IMDType::ECmpType cmp_type,
-	IMDId *pmdidTypePartKey, IMDId *pmdidTypeExpr, IMDId *pmdidTypeCastExpr,
-	IMDId *mdid_cast_func)
-{
-	IMDId *pmdidScCmp = nullptr;
-
-	if (IMDId::IsValid(pmdidTypeCastExpr))
-	{
-		pmdidScCmp = CMDAccessorUtils::GetScCmpMdIdConsiderCasts(
-			md_accessor, pmdidTypeCastExpr, pmdidTypeExpr, cmp_type);
-	}
-	else
-	{
-		pmdidScCmp = CMDAccessorUtils::GetScCmpMdIdConsiderCasts(
-			md_accessor, pmdidTypePartKey, pmdidTypeExpr, cmp_type);
-	}
-
-	const IMDScalarOp *md_scalar_op = md_accessor->RetrieveScOp(pmdidScCmp);
-	const CWStringConst *pstrScCmp = md_scalar_op->Mdname().GetMDName();
-
-	pmdidScCmp->AddRef();
-
-	CDXLScalarComp *pdxlopCmp = GPOS_NEW(mp) CDXLScalarComp(
-		mp, pmdidScCmp, GPOS_NEW(mp) CWStringConst(mp, pstrScCmp->GetBuffer()));
-	CDXLNode *pdxlnScCmp = GPOS_NEW(mp) CDXLNode(mp, pdxlopCmp);
-
-	pmdidTypePartKey->AddRef();
-	CDXLNode *pdxlnPartBound = GPOS_NEW(mp)
-		CDXLNode(mp, GPOS_NEW(mp) CDXLScalarPartBound(
-						 mp, ulPartLevel, pmdidTypePartKey, fLowerBound));
-
-	if (IMDId::IsValid(pmdidTypeCastExpr))
-	{
-		GPOS_ASSERT(nullptr != mdid_cast_func);
-		pmdidTypeCastExpr->AddRef();
-		mdid_cast_func->AddRef();
-
-		pdxlnPartBound = GPOS_NEW(mp) CDXLNode(
-			mp,
-			GPOS_NEW(mp) CDXLScalarCast(mp, pmdidTypeCastExpr, mdid_cast_func),
-			pdxlnPartBound);
-	}
-	pdxlnScCmp->AddChild(pdxlnPartBound);
-	pdxlnScCmp->AddChild(pdxlnScalar);
-
-	return pdxlnScCmp;
-}
-
 //---------------------------------------------------------------------------
 //	@function:
 //		CTranslatorExprToDXLUtils::PcrCreate
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLOperator.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLOperator.h
index c8e7df15c7..51564551d3 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLOperator.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLOperator.h
@@ -116,12 +116,6 @@ enum Edxlopid
 
 	EdxlopScalarDMLAction,
 	EdxlopScalarOpList,
-	EdxlopScalarPartDefault,
-	EdxlopScalarPartBound,
-	EdxlopScalarPartBoundInclusion,
-	EdxlopScalarPartBoundOpen,
-	EdxlopScalarPartListValues,
-	EdxlopScalarPartListNullTest,
 	EdxlopScalarValuesList,
 	EdxlopScalarSortGroupClause,
 
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBound.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBound.h
deleted file mode 100644
index 9643413cb9..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBound.h
+++ /dev/null
@@ -1,107 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartBound.h
-//
-//	@doc:
-//		Class for representing DXL Part boundary expressions
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CDXLScalarPartBound_H
-#define GPDXL_CDXLScalarPartBound_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/CDXLScalar.h"
-
-namespace gpdxl
-{
-//---------------------------------------------------------------------------
-//	@class:
-//		CDXLScalarPartBound
-//
-//	@doc:
-//		Class for representing DXL Part boundary expressions
-//		These expressions are created and consumed by the PartitionSelector operator
-//
-//---------------------------------------------------------------------------
-class CDXLScalarPartBound : public CDXLScalar
-{
-private:
-	// partitioning level
-	ULONG m_partitioning_level;
-
-	// boundary type
-	IMDId *m_mdid_type;
-
-	// whether this represents a lower or upper bound
-	BOOL m_is_lower_bound;
-
-public:
-	CDXLScalarPartBound(const CDXLScalarPartBound &) = delete;
-
-	// ctor
-	CDXLScalarPartBound(CMemoryPool *mp, ULONG partitioning_level,
-						IMDId *mdid_type, BOOL is_lower_bound);
-
-	// dtor
-	~CDXLScalarPartBound() override;
-
-	// operator type
-	Edxlopid GetDXLOperator() const override;
-
-	// operator name
-	const CWStringConst *GetOpNameStr() const override;
-
-	// partitioning level
-	ULONG
-	GetPartitioningLevel() const
-	{
-		return m_partitioning_level;
-	}
-
-	// boundary type
-	IMDId *
-	MdidType() const
-	{
-		return m_mdid_type;
-	}
-
-	// is this a lower (or upper) bound
-	BOOL
-	IsLowerBound() const
-	{
-		return m_is_lower_bound;
-	}
-
-	// serialize operator in DXL format
-	void SerializeToDXL(CXMLSerializer *xml_serializer,
-						const CDXLNode *dxlnode) const override;
-
-	// does the operator return a boolean result
-	BOOL HasBoolResult(CMDAccessor *md_accessor) const override;
-
-#ifdef GPOS_DEBUG
-	// checks whether the operator has valid structure, i.e. number and
-	// types of child nodes
-	void AssertValid(const CDXLNode *dxlnode,
-					 BOOL validate_children) const override;
-#endif	// GPOS_DEBUG
-
-	// conversion function
-	static CDXLScalarPartBound *
-	Cast(CDXLOperator *dxl_op)
-	{
-		GPOS_ASSERT(nullptr != dxl_op);
-		GPOS_ASSERT(EdxlopScalarPartBound == dxl_op->GetDXLOperator());
-
-		return dynamic_cast<CDXLScalarPartBound *>(dxl_op);
-	}
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CDXLScalarPartBound_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBoundInclusion.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBoundInclusion.h
deleted file mode 100644
index 12d6acab8f..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBoundInclusion.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartBoundInclusion.h
-//
-//	@doc:
-//		Class for representing DXL Part boundary inclusion expressions
-//		These expressions indicate whether a particular boundary of a part
-//		constraint is closed (inclusive) or open (exclusive)
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CDXLScalarPartBoundInclusion_H
-#define GPDXL_CDXLScalarPartBoundInclusion_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/CDXLScalar.h"
-
-namespace gpdxl
-{
-//---------------------------------------------------------------------------
-//	@class:
-//		CDXLScalarPartBoundInclusion
-//
-//	@doc:
-//		Class for representing DXL Part boundary inclusion expressions
-//		These expressions are created and consumed by the PartitionSelector operator
-//
-//---------------------------------------------------------------------------
-class CDXLScalarPartBoundInclusion : public CDXLScalar
-{
-private:
-	// partitioning level
-	ULONG m_partitioning_level;
-
-	// whether this represents a lower or upper bound
-	BOOL m_is_lower_bound;
-
-public:
-	CDXLScalarPartBoundInclusion(const CDXLScalarPartBoundInclusion &) = delete;
-
-	// ctor
-	CDXLScalarPartBoundInclusion(CMemoryPool *mp, ULONG partitioning_level,
-								 BOOL is_lower_bound);
-
-	// operator type
-	Edxlopid GetDXLOperator() const override;
-
-	// operator name
-	const CWStringConst *GetOpNameStr() const override;
-
-	// partitioning level
-	ULONG
-	GetPartitioningLevel() const
-	{
-		return m_partitioning_level;
-	}
-
-	// is this a lower (or upper) bound
-	BOOL
-	IsLowerBound() const
-	{
-		return m_is_lower_bound;
-	}
-
-	// serialize operator in DXL format
-	void SerializeToDXL(CXMLSerializer *xml_serializer,
-						const CDXLNode *dxlnode) const override;
-
-	// does the operator return a boolean result
-	BOOL
-	HasBoolResult(CMDAccessor *	 //md_accessor
-	) const override
-	{
-		return true;
-	}
-
-#ifdef GPOS_DEBUG
-	// checks whether the operator has valid structure, i.e. number and
-	// types of child nodes
-	void AssertValid(const CDXLNode *dxlnode,
-					 BOOL validate_children) const override;
-#endif	// GPOS_DEBUG
-
-	// conversion function
-	static CDXLScalarPartBoundInclusion *
-	Cast(CDXLOperator *dxl_op)
-	{
-		GPOS_ASSERT(nullptr != dxl_op);
-		GPOS_ASSERT(EdxlopScalarPartBoundInclusion == dxl_op->GetDXLOperator());
-
-		return dynamic_cast<CDXLScalarPartBoundInclusion *>(dxl_op);
-	}
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CDXLScalarPartBoundInclusion_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBoundOpen.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBoundOpen.h
deleted file mode 100644
index 727369df05..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartBoundOpen.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartBoundOpen.h
-//
-//	@doc:
-//		Class for representing DXL Part boundary openness expressions
-//		These expressions indicate whether a particular boundary of a part
-//		constraint is open (unbounded)
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CDXLScalarPartBoundOpen_H
-#define GPDXL_CDXLScalarPartBoundOpen_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/CDXLScalar.h"
-
-namespace gpdxl
-{
-//---------------------------------------------------------------------------
-//	@class:
-//		CDXLScalarPartBoundOpen
-//
-//	@doc:
-//		Class for representing DXL Part boundary openness expressions
-//		These expressions are created and consumed by the PartitionSelector operator
-//
-//---------------------------------------------------------------------------
-class CDXLScalarPartBoundOpen : public CDXLScalar
-{
-private:
-	// partitioning level
-	ULONG m_partitioning_level;
-
-	// whether this represents a lower or upper bound
-	BOOL m_is_lower_bound;
-
-public:
-	CDXLScalarPartBoundOpen(const CDXLScalarPartBoundOpen &) = delete;
-
-	// ctor
-	CDXLScalarPartBoundOpen(CMemoryPool *mp, ULONG partitioning_level,
-							BOOL is_lower_bound);
-
-	// operator type
-	Edxlopid GetDXLOperator() const override;
-
-	// operator name
-	const CWStringConst *GetOpNameStr() const override;
-
-	// partitioning level
-	ULONG
-	GetPartitioningLevel() const
-	{
-		return m_partitioning_level;
-	}
-
-	// is this a lower (or upper) bound
-	BOOL
-	IsLowerBound() const
-	{
-		return m_is_lower_bound;
-	}
-
-	// serialize operator in DXL format
-	void SerializeToDXL(CXMLSerializer *xml_serializer,
-						const CDXLNode *dxlnode) const override;
-
-	// does the operator return a boolean result
-	BOOL
-	HasBoolResult(CMDAccessor *	 //md_accessor
-	) const override
-	{
-		return true;
-	}
-
-#ifdef GPOS_DEBUG
-	// checks whether the operator has valid structure, i.e. number and
-	// types of child nodes
-	void AssertValid(const CDXLNode *dxlnode,
-					 BOOL validate_children) const override;
-#endif	// GPOS_DEBUG
-
-	// conversion function
-	static CDXLScalarPartBoundOpen *
-	Cast(CDXLOperator *dxl_op)
-	{
-		GPOS_ASSERT(nullptr != dxl_op);
-		GPOS_ASSERT(EdxlopScalarPartBoundOpen == dxl_op->GetDXLOperator());
-
-		return dynamic_cast<CDXLScalarPartBoundOpen *>(dxl_op);
-	}
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CDXLScalarPartBoundOpen_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartDefault.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartDefault.h
deleted file mode 100644
index 50d486da3c..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartDefault.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartDefault.h
-//
-//	@doc:
-//		Class for representing DXL Part Default expressions
-//		These expressions indicate whether a particular part is a default part
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CDXLScalarPartDefault_H
-#define GPDXL_CDXLScalarPartDefault_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/CDXLScalar.h"
-
-namespace gpdxl
-{
-//---------------------------------------------------------------------------
-//	@class:
-//		CDXLScalarPartDefault
-//
-//	@doc:
-//		Class for representing DXL Part Default expressions
-//
-//---------------------------------------------------------------------------
-class CDXLScalarPartDefault : public CDXLScalar
-{
-private:
-	// partitioning level
-	ULONG m_partitioning_level;
-
-public:
-	CDXLScalarPartDefault(const CDXLScalarPartDefault &) = delete;
-
-	// ctor
-	CDXLScalarPartDefault(CMemoryPool *mp, ULONG partitioning_level);
-
-	// operator type
-	Edxlopid GetDXLOperator() const override;
-
-	// operator name
-	const CWStringConst *GetOpNameStr() const override;
-
-	// partitioning level
-	ULONG
-	GetPartitioningLevel() const
-	{
-		return m_partitioning_level;
-	}
-
-	// serialize operator in DXL format
-	void SerializeToDXL(CXMLSerializer *xml_serializer,
-						const CDXLNode *dxlnode) const override;
-
-	// does the operator return a boolean result
-	BOOL
-	HasBoolResult(CMDAccessor *	 //md_accessor
-	) const override
-	{
-		return true;
-	}
-
-#ifdef GPOS_DEBUG
-	// checks whether the operator has valid structure, i.e. number and
-	// types of child nodes
-	void AssertValid(const CDXLNode *dxlnode,
-					 BOOL validate_children) const override;
-#endif	// GPOS_DEBUG
-
-	// conversion function
-	static CDXLScalarPartDefault *
-	Cast(CDXLOperator *dxl_op)
-	{
-		GPOS_ASSERT(nullptr != dxl_op);
-		GPOS_ASSERT(EdxlopScalarPartDefault == dxl_op->GetDXLOperator());
-
-		return dynamic_cast<CDXLScalarPartDefault *>(dxl_op);
-	}
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CDXLScalarPartDefault_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartListNullTest.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartListNullTest.h
deleted file mode 100644
index c0ca9f854b..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartListNullTest.h
+++ /dev/null
@@ -1,68 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2017 VMware, Inc. or its affiliates.
-//
-//	Class for representing DXL Part list null test expressions
-//	These expressions indicate whether the list values of a part
-//	contain NULL value or not
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CDXLScalarPartListNullTest_H
-#define GPDXL_CDXLScalarPartListNullTest_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/CDXLScalar.h"
-
-namespace gpdxl
-{
-class CDXLScalarPartListNullTest : public CDXLScalar
-{
-private:
-	// partitioning level
-	ULONG m_partitioning_level;
-
-	// Null Test type (true for 'is null', false for 'is not null')
-	BOOL m_is_null;
-
-public:
-	CDXLScalarPartListNullTest(const CDXLScalarPartListNullTest &) = delete;
-
-	// ctor
-	CDXLScalarPartListNullTest(CMemoryPool *mp, ULONG partitioning_level,
-							   BOOL is_null);
-
-	// operator type
-	Edxlopid GetDXLOperator() const override;
-
-	// operator name
-	const CWStringConst *GetOpNameStr() const override;
-
-	// partitioning level
-	ULONG GetPartitioningLevel() const;
-
-	// Null Test type (true for 'is null', false for 'is not null')
-	BOOL IsNull() const;
-
-	// serialize operator in DXL format
-	void SerializeToDXL(CXMLSerializer *xml_serializer,
-						const CDXLNode *dxlnode) const override;
-
-	// does the operator return a boolean result
-	BOOL HasBoolResult(CMDAccessor *md_accessor) const override;
-
-#ifdef GPOS_DEBUG
-	// checks whether the operator has valid structure, i.e. number and
-	// types of child nodes
-	void AssertValid(const CDXLNode *dxlnode,
-					 BOOL validate_children) const override;
-#endif	// GPOS_DEBUG
-
-	// conversion function
-	static CDXLScalarPartListNullTest *Cast(CDXLOperator *dxl_op);
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CDXLScalarPartListNullTest_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartListValues.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartListValues.h
deleted file mode 100644
index 844282554c..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarPartListValues.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2017 VMware, Inc. or its affiliates.
-//
-//	Class for representing DXL Part List Values expressions
-//	These expressions indicate the constant values for the list partition
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CDXLScalarPartListValues_H
-#define GPDXL_CDXLScalarPartListValues_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/operators/CDXLScalar.h"
-
-namespace gpdxl
-{
-class CDXLScalarPartListValues : public CDXLScalar
-{
-private:
-	// partitioning level
-	ULONG m_partitioning_level;
-
-	// result type
-	IMDId *m_result_type_mdid;
-
-	// element type
-	IMDId *m_elem_type_mdid;
-
-public:
-	CDXLScalarPartListValues(const CDXLScalarPartListValues &) = delete;
-
-	// ctor
-	CDXLScalarPartListValues(CMemoryPool *mp, ULONG partitioning_level,
-							 IMDId *result_type_mdid, IMDId *elem_type_mdid);
-
-	// dtor
-	~CDXLScalarPartListValues() override;
-
-	// operator type
-	Edxlopid GetDXLOperator() const override;
-
-	// operator name
-	const CWStringConst *GetOpNameStr() const override;
-
-	// partitioning level
-	ULONG GetPartitioningLevel() const;
-
-	// result type
-	IMDId *GetResultTypeMdId() const;
-
-	// element type
-	IMDId *GetElemTypeMdId() const;
-
-	// serialize operator in DXL format
-	void SerializeToDXL(CXMLSerializer *xml_serializer,
-						const CDXLNode *dxlnode) const override;
-
-	// does the operator return a boolean result
-	BOOL HasBoolResult(CMDAccessor *md_accessor) const override;
-
-#ifdef GPOS_DEBUG
-	// checks whether the operator has valid structure, i.e. number and
-	// types of child nodes
-	void AssertValid(const CDXLNode *dxlnode,
-					 BOOL validate_children) const override;
-#endif	// GPOS_DEBUG
-
-	// conversion function
-	static CDXLScalarPartListValues *Cast(CDXLOperator *dxl_op);
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CDXLScalarPartListValues_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBound.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBound.h
deleted file mode 100644
index 522bf5c4a1..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBound.h
+++ /dev/null
@@ -1,63 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartBound.h
-//
-//	@doc:
-//		SAX parse handler class for parsing scalar part bound
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CParseHandlerScalarScalarPartBound_H
-#define GPDXL_CParseHandlerScalarScalarPartBound_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-namespace gpdxl
-{
-using namespace gpos;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@class:
-//		CParseHandlerScalarPartBound
-//
-//	@doc:
-//		Parse handler class for parsing scalar part bound
-//
-//---------------------------------------------------------------------------
-class CParseHandlerScalarPartBound : public CParseHandlerScalarOp
-{
-private:
-	// process the start of an element
-	void StartElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname,		// element's qname
-		const Attributes &attr					// element's attributes
-		) override;
-
-	// process the end of an element
-	void EndElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname		// element's qname
-		) override;
-
-public:
-	CParseHandlerScalarPartBound(const CParseHandlerScalarPartBound &) = delete;
-
-	// ctor
-	CParseHandlerScalarPartBound(CMemoryPool *mp,
-								 CParseHandlerManager *parse_handler_mgr,
-								 CParseHandlerBase *parse_handler_root);
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CParseHandlerScalarScalarPartBound_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBoundInclusion.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBoundInclusion.h
deleted file mode 100644
index 7d75335baf..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBoundInclusion.h
+++ /dev/null
@@ -1,64 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartBoundInclusion.h
-//
-//	@doc:
-//		SAX parse handler class for parsing scalar part bound inclusion
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CParseHandlerScalarScalarPartBoundInclusion_H
-#define GPDXL_CParseHandlerScalarScalarPartBoundInclusion_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-namespace gpdxl
-{
-using namespace gpos;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@class:
-//		CParseHandlerScalarPartBoundInclusion
-//
-//	@doc:
-//		Parse handler class for parsing scalar part bound inclusion
-//
-//---------------------------------------------------------------------------
-class CParseHandlerScalarPartBoundInclusion : public CParseHandlerScalarOp
-{
-private:
-	// process the start of an element
-	void StartElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname,		// element's qname
-		const Attributes &attr					// element's attributes
-		) override;
-
-	// process the end of an element
-	void EndElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname		// element's qname
-		) override;
-
-public:
-	CParseHandlerScalarPartBoundInclusion(
-		const CParseHandlerScalarPartBoundInclusion &) = delete;
-
-	// ctor
-	CParseHandlerScalarPartBoundInclusion(
-		CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-		CParseHandlerBase *parse_handler_root);
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CParseHandlerScalarScalarPartBoundInclusion_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBoundOpen.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBoundOpen.h
deleted file mode 100644
index 912e904584..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartBoundOpen.h
+++ /dev/null
@@ -1,64 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartBoundOpen.h
-//
-//	@doc:
-//		SAX parse handler class for parsing scalar part bound openness
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CParseHandlerScalarScalarPartBoundOpen_H
-#define GPDXL_CParseHandlerScalarScalarPartBoundOpen_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-namespace gpdxl
-{
-using namespace gpos;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@class:
-//		CParseHandlerScalarPartBoundOpen
-//
-//	@doc:
-//		Parse handler class for parsing scalar part bound openness
-//
-//---------------------------------------------------------------------------
-class CParseHandlerScalarPartBoundOpen : public CParseHandlerScalarOp
-{
-private:
-	// process the start of an element
-	void StartElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname,		// element's qname
-		const Attributes &attr					// element's attributes
-		) override;
-
-	// process the end of an element
-	void EndElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname		// element's qname
-		) override;
-
-public:
-	CParseHandlerScalarPartBoundOpen(const CParseHandlerScalarPartBoundOpen &) =
-		delete;
-
-	// ctor
-	CParseHandlerScalarPartBoundOpen(CMemoryPool *mp,
-									 CParseHandlerManager *parse_handler_mgr,
-									 CParseHandlerBase *parse_handler_root);
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CParseHandlerScalarScalarPartBoundOpen_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartDefault.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartDefault.h
deleted file mode 100644
index 561f4f728c..0000000000
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerScalarPartDefault.h
+++ /dev/null
@@ -1,64 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartDefault.h
-//
-//	@doc:
-//		SAX parse handler class for parsing scalar part default
-//---------------------------------------------------------------------------
-
-#ifndef GPDXL_CParseHandlerScalarScalarPartDefault_H
-#define GPDXL_CParseHandlerScalarScalarPartDefault_H
-
-#include "gpos/base.h"
-
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-namespace gpdxl
-{
-using namespace gpos;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@class:
-//		CParseHandlerScalarPartDefault
-//
-//	@doc:
-//		Parse handler class for parsing scalar part default
-//
-//---------------------------------------------------------------------------
-class CParseHandlerScalarPartDefault : public CParseHandlerScalarOp
-{
-private:
-	// process the start of an element
-	void StartElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname,		// element's qname
-		const Attributes &attr					// element's attributes
-		) override;
-
-	// process the end of an element
-	void EndElement(
-		const XMLCh *const element_uri,			// URI of element's namespace
-		const XMLCh *const element_local_name,	// local part of element's name
-		const XMLCh *const element_qname		// element's qname
-		) override;
-
-public:
-	CParseHandlerScalarPartDefault(const CParseHandlerScalarPartDefault &) =
-		delete;
-
-	// ctor
-	CParseHandlerScalarPartDefault(CMemoryPool *mp,
-								   CParseHandlerManager *parse_handler_mgr,
-								   CParseHandlerBase *parse_handler_root);
-};
-}  // namespace gpdxl
-
-#endif	// !GPDXL_CParseHandlerScalarScalarPartDefault_H
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/parsehandlers.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/parsehandlers.h
index 4c8679f6dc..4956a26c20 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/parsehandlers.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/parsehandlers.h
@@ -150,12 +150,6 @@
 #include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
 #include "naucrates/dxl/parser/CParseHandlerScalarOpExpr.h"
 #include "naucrates/dxl/parser/CParseHandlerScalarOpList.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarPartBound.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarPartBoundInclusion.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarPartBoundOpen.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarPartDefault.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarPartListNullTest.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarPartListValues.h"
 #include "naucrates/dxl/parser/CParseHandlerScalarSortGroupClause.h"
 #include "naucrates/dxl/parser/CParseHandlerScalarSubPlan.h"
 #include "naucrates/dxl/parser/CParseHandlerScalarSubPlanParam.h"
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h b/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
index b39e731f50..0c44b28548 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
@@ -215,12 +215,6 @@ enum Edxltoken
 	EdxltokenPartLevelFilterList,
 	EdxltokenPartLevel,
 	EdxltokenScalarPartDefault,
-	EdxltokenScalarPartBound,
-	EdxltokenScalarPartBoundLower,
-	EdxltokenScalarPartBoundInclusion,
-	EdxltokenScalarPartBoundOpen,
-	EdxltokenScalarPartListValues,
-	EdxltokenScalarPartListNullTest,
 	EdxltokenScalarResidualFilter,
 	EdxltokenScalarPartFilterExpr,
 	EdxltokenScalarBitmapIndexProbe,
diff --git a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBound.cpp b/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBound.cpp
deleted file mode 100644
index c12409f5cd..0000000000
--- a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBound.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartBound.cpp
-//
-//	@doc:
-//		Implementation of DXL Part Bound expression
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/operators/CDXLScalarPartBound.h"
-
-#include "gpopt/mdcache/CMDAccessor.h"
-#include "naucrates/dxl/operators/CDXLNode.h"
-#include "naucrates/dxl/xml/CXMLSerializer.h"
-
-using namespace gpopt;
-using namespace gpmd;
-using namespace gpos;
-using namespace gpdxl;
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::CDXLScalarPartBound
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CDXLScalarPartBound::CDXLScalarPartBound(CMemoryPool *mp,
-										 ULONG partitioning_level,
-										 IMDId *mdid_type, BOOL is_lower_bound)
-	: CDXLScalar(mp),
-	  m_partitioning_level(partitioning_level),
-	  m_mdid_type(mdid_type),
-	  m_is_lower_bound(is_lower_bound)
-{
-	GPOS_ASSERT(mdid_type->IsValid());
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::~CDXLScalarPartBound
-//
-//	@doc:
-//		Dtor
-//
-//---------------------------------------------------------------------------
-CDXLScalarPartBound::~CDXLScalarPartBound()
-{
-	m_mdid_type->Release();
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::GetDXLOperator
-//
-//	@doc:
-//		Operator type
-//
-//---------------------------------------------------------------------------
-Edxlopid
-CDXLScalarPartBound::GetDXLOperator() const
-{
-	return EdxlopScalarPartBound;
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::GetOpNameStr
-//
-//	@doc:
-//		Operator name
-//
-//---------------------------------------------------------------------------
-const CWStringConst *
-CDXLScalarPartBound::GetOpNameStr() const
-{
-	return CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartBound);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::HasBoolResult
-//
-//	@doc:
-//		Does the operator return a boolean result
-//
-//---------------------------------------------------------------------------
-BOOL
-CDXLScalarPartBound::HasBoolResult(CMDAccessor *md_accessor) const
-{
-	return (IMDType::EtiBool ==
-			md_accessor->RetrieveType(m_mdid_type)->GetDatumType());
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::SerializeToDXL
-//
-//	@doc:
-//		Serialize operator in DXL format
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartBound::SerializeToDXL(CXMLSerializer *xml_serializer,
-									const CDXLNode *  // dxlnode
-) const
-{
-	const CWStringConst *element_name = GetOpNameStr();
-
-	xml_serializer->OpenElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-	xml_serializer->AddAttribute(CDXLTokens::GetDXLTokenStr(EdxltokenPartLevel),
-								 m_partitioning_level);
-	m_mdid_type->Serialize(xml_serializer,
-						   CDXLTokens::GetDXLTokenStr(EdxltokenMDType));
-	xml_serializer->AddAttribute(
-		CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartBoundLower),
-		m_is_lower_bound);
-	xml_serializer->CloseElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-}
-
-#ifdef GPOS_DEBUG
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBound::AssertValid
-//
-//	@doc:
-//		Checks whether operator node is well-structured
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartBound::AssertValid(const CDXLNode *dxlnode,
-								 BOOL  // validate_children
-) const
-{
-	GPOS_ASSERT(0 == dxlnode->Arity());
-}
-#endif	// GPOS_DEBUG
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBoundInclusion.cpp b/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBoundInclusion.cpp
deleted file mode 100644
index 7e186f6f49..0000000000
--- a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBoundInclusion.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartBoundInclusion.cpp
-//
-//	@doc:
-//		Implementation of DXL Part bound inclusion expression
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/operators/CDXLScalarPartBoundInclusion.h"
-
-#include "gpopt/mdcache/CMDAccessor.h"
-#include "naucrates/dxl/operators/CDXLNode.h"
-#include "naucrates/dxl/xml/CXMLSerializer.h"
-
-using namespace gpopt;
-using namespace gpmd;
-using namespace gpos;
-using namespace gpdxl;
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundInclusion::CDXLScalarPartBoundInclusion
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CDXLScalarPartBoundInclusion::CDXLScalarPartBoundInclusion(
-	CMemoryPool *mp, ULONG partitioning_level, BOOL is_lower_bound)
-	: CDXLScalar(mp),
-	  m_partitioning_level(partitioning_level),
-	  m_is_lower_bound(is_lower_bound)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundInclusion::GetDXLOperator
-//
-//	@doc:
-//		Operator type
-//
-//---------------------------------------------------------------------------
-Edxlopid
-CDXLScalarPartBoundInclusion::GetDXLOperator() const
-{
-	return EdxlopScalarPartBoundInclusion;
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundInclusion::GetOpNameStr
-//
-//	@doc:
-//		Operator name
-//
-//---------------------------------------------------------------------------
-const CWStringConst *
-CDXLScalarPartBoundInclusion::GetOpNameStr() const
-{
-	return CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartBoundInclusion);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundInclusion::SerializeToDXL
-//
-//	@doc:
-//		Serialize operator in DXL format
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartBoundInclusion::SerializeToDXL(CXMLSerializer *xml_serializer,
-											 const CDXLNode *  // dxlnode
-) const
-{
-	const CWStringConst *element_name = GetOpNameStr();
-
-	xml_serializer->OpenElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-	xml_serializer->AddAttribute(CDXLTokens::GetDXLTokenStr(EdxltokenPartLevel),
-								 m_partitioning_level);
-	xml_serializer->AddAttribute(
-		CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartBoundLower),
-		m_is_lower_bound);
-	xml_serializer->CloseElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-}
-
-#ifdef GPOS_DEBUG
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundInclusion::AssertValid
-//
-//	@doc:
-//		Checks whether operator node is well-structured
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartBoundInclusion::AssertValid(const CDXLNode *dxlnode,
-										  BOOL	// validate_children
-) const
-{
-	GPOS_ASSERT(0 == dxlnode->Arity());
-}
-#endif	// GPOS_DEBUG
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBoundOpen.cpp b/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBoundOpen.cpp
deleted file mode 100644
index fad11407a7..0000000000
--- a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartBoundOpen.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartBoundOpen.cpp
-//
-//	@doc:
-//		Implementation of DXL Part bound openness expression
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/operators/CDXLScalarPartBoundOpen.h"
-
-#include "gpopt/mdcache/CMDAccessor.h"
-#include "naucrates/dxl/operators/CDXLNode.h"
-#include "naucrates/dxl/xml/CXMLSerializer.h"
-
-using namespace gpopt;
-using namespace gpmd;
-using namespace gpos;
-using namespace gpdxl;
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundOpen::CDXLScalarPartBoundOpen
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CDXLScalarPartBoundOpen::CDXLScalarPartBoundOpen(CMemoryPool *mp,
-												 ULONG partitioning_level,
-												 BOOL is_lower_bound)
-	: CDXLScalar(mp),
-	  m_partitioning_level(partitioning_level),
-	  m_is_lower_bound(is_lower_bound)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundOpen::GetDXLOperator
-//
-//	@doc:
-//		Operator type
-//
-//---------------------------------------------------------------------------
-Edxlopid
-CDXLScalarPartBoundOpen::GetDXLOperator() const
-{
-	return EdxlopScalarPartBoundOpen;
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundOpen::GetOpNameStr
-//
-//	@doc:
-//		Operator name
-//
-//---------------------------------------------------------------------------
-const CWStringConst *
-CDXLScalarPartBoundOpen::GetOpNameStr() const
-{
-	return CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartBoundOpen);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundOpen::SerializeToDXL
-//
-//	@doc:
-//		Serialize operator in DXL format
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartBoundOpen::SerializeToDXL(CXMLSerializer *xml_serializer,
-										const CDXLNode *  // dxlnode
-) const
-{
-	const CWStringConst *element_name = GetOpNameStr();
-
-	xml_serializer->OpenElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-	xml_serializer->AddAttribute(CDXLTokens::GetDXLTokenStr(EdxltokenPartLevel),
-								 m_partitioning_level);
-	xml_serializer->AddAttribute(
-		CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartBoundLower),
-		m_is_lower_bound);
-	xml_serializer->CloseElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-}
-
-#ifdef GPOS_DEBUG
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartBoundOpen::AssertValid
-//
-//	@doc:
-//		Checks whether operator node is well-structured
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartBoundOpen::AssertValid(const CDXLNode *dxlnode,
-									 BOOL  // validate_children
-) const
-{
-	GPOS_ASSERT(0 == dxlnode->Arity());
-}
-#endif	// GPOS_DEBUG
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartDefault.cpp b/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartDefault.cpp
deleted file mode 100644
index 2def43bacb..0000000000
--- a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartDefault.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CDXLScalarPartDefault.cpp
-//
-//	@doc:
-//		Implementation of DXL Part Default expression
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/operators/CDXLScalarPartDefault.h"
-
-#include "gpopt/mdcache/CMDAccessor.h"
-#include "naucrates/dxl/operators/CDXLNode.h"
-#include "naucrates/dxl/xml/CXMLSerializer.h"
-
-using namespace gpopt;
-using namespace gpmd;
-using namespace gpos;
-using namespace gpdxl;
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartDefault::CDXLScalarPartDefault
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CDXLScalarPartDefault::CDXLScalarPartDefault(CMemoryPool *mp,
-											 ULONG partitioning_level)
-	: CDXLScalar(mp), m_partitioning_level(partitioning_level)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartDefault::GetDXLOperator
-//
-//	@doc:
-//		Operator type
-//
-//---------------------------------------------------------------------------
-Edxlopid
-CDXLScalarPartDefault::GetDXLOperator() const
-{
-	return EdxlopScalarPartDefault;
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartDefault::GetOpNameStr
-//
-//	@doc:
-//		Operator name
-//
-//---------------------------------------------------------------------------
-const CWStringConst *
-CDXLScalarPartDefault::GetOpNameStr() const
-{
-	return CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartDefault);
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartDefault::SerializeToDXL
-//
-//	@doc:
-//		Serialize operator in DXL format
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartDefault::SerializeToDXL(CXMLSerializer *xml_serializer,
-									  const CDXLNode *	// dxlnode
-) const
-{
-	const CWStringConst *element_name = GetOpNameStr();
-
-	xml_serializer->OpenElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-	xml_serializer->AddAttribute(CDXLTokens::GetDXLTokenStr(EdxltokenPartLevel),
-								 m_partitioning_level);
-	xml_serializer->CloseElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-}
-
-#ifdef GPOS_DEBUG
-//---------------------------------------------------------------------------
-//	@function:
-//		CDXLScalarPartDefault::AssertValid
-//
-//	@doc:
-//		Checks whether operator node is well-structured
-//
-//---------------------------------------------------------------------------
-void
-CDXLScalarPartDefault::AssertValid(const CDXLNode *dxlnode,
-								   BOOL	 // validate_children
-) const
-{
-	GPOS_ASSERT(0 == dxlnode->Arity());
-}
-#endif	// GPOS_DEBUG
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartListNullTest.cpp b/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartListNullTest.cpp
deleted file mode 100644
index d1dcebea47..0000000000
--- a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartListNullTest.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2017 VMware, Inc. or its affiliates.
-//
-//  Implementation of DXL Part list null test expression
-
-#include "naucrates/dxl/operators/CDXLScalarPartListNullTest.h"
-
-#include "gpopt/mdcache/CMDAccessor.h"
-#include "naucrates/dxl/operators/CDXLNode.h"
-#include "naucrates/dxl/xml/CXMLSerializer.h"
-
-using namespace gpopt;
-using namespace gpmd;
-using namespace gpos;
-using namespace gpdxl;
-
-// Ctor
-CDXLScalarPartListNullTest::CDXLScalarPartListNullTest(CMemoryPool *mp,
-													   ULONG partitioning_level,
-													   BOOL is_null)
-	: CDXLScalar(mp),
-	  m_partitioning_level(partitioning_level),
-	  m_is_null(is_null)
-{
-}
-
-// Operator type
-Edxlopid
-CDXLScalarPartListNullTest::GetDXLOperator() const
-{
-	return EdxlopScalarPartListNullTest;
-}
-
-// Operator name
-const CWStringConst *
-CDXLScalarPartListNullTest::GetOpNameStr() const
-{
-	return CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartListNullTest);
-}
-
-// Serialize operator in DXL format
-void
-CDXLScalarPartListNullTest::SerializeToDXL(CXMLSerializer *xml_serializer,
-										   const CDXLNode *	 // dxlnode
-) const
-{
-	const CWStringConst *element_name = GetOpNameStr();
-
-	xml_serializer->OpenElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-	xml_serializer->AddAttribute(CDXLTokens::GetDXLTokenStr(EdxltokenPartLevel),
-								 m_partitioning_level);
-	xml_serializer->AddAttribute(
-		CDXLTokens::GetDXLTokenStr(EdxltokenScalarIsNull), m_is_null);
-	xml_serializer->CloseElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-}
-
-// partitioning level
-ULONG
-CDXLScalarPartListNullTest::GetPartitioningLevel() const
-{
-	return m_partitioning_level;
-}
-
-// Null Test type (true for 'is null', false for 'is not null')
-BOOL
-CDXLScalarPartListNullTest::IsNull() const
-{
-	return m_is_null;
-}
-
-// does the operator return a boolean result
-BOOL
-CDXLScalarPartListNullTest::HasBoolResult(CMDAccessor *	 //md_accessor
-) const
-{
-	return true;
-}
-
-#ifdef GPOS_DEBUG
-// Checks whether operator node is well-structured
-void
-CDXLScalarPartListNullTest::AssertValid(const CDXLNode *dxlnode,
-										BOOL  // validate_children
-) const
-{
-	GPOS_ASSERT(0 == dxlnode->Arity());
-}
-#endif	// GPOS_DEBUG
-
-// conversion function
-CDXLScalarPartListNullTest *
-CDXLScalarPartListNullTest::Cast(CDXLOperator *dxl_op)
-{
-	GPOS_ASSERT(nullptr != dxl_op);
-	GPOS_ASSERT(EdxlopScalarPartListNullTest == dxl_op->GetDXLOperator());
-
-	return dynamic_cast<CDXLScalarPartListNullTest *>(dxl_op);
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartListValues.cpp b/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartListValues.cpp
deleted file mode 100644
index 5eb628eaca..0000000000
--- a/src/backend/gporca/libnaucrates/src/operators/CDXLScalarPartListValues.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2017 VMware, Inc. or its affiliates.
-//
-//	Implementation of DXL Part List Values expression
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/operators/CDXLScalarPartListValues.h"
-
-#include "gpopt/mdcache/CMDAccessor.h"
-#include "naucrates/dxl/operators/CDXLNode.h"
-#include "naucrates/dxl/xml/CXMLSerializer.h"
-
-using namespace gpopt;
-using namespace gpmd;
-using namespace gpos;
-using namespace gpdxl;
-
-// Ctor
-CDXLScalarPartListValues::CDXLScalarPartListValues(CMemoryPool *mp,
-												   ULONG partitioning_level,
-												   IMDId *result_type_mdid,
-												   IMDId *elem_type_mdid)
-	: CDXLScalar(mp),
-	  m_partitioning_level(partitioning_level),
-	  m_result_type_mdid(result_type_mdid),
-	  m_elem_type_mdid(elem_type_mdid)
-{
-	GPOS_ASSERT(result_type_mdid->IsValid());
-	GPOS_ASSERT(elem_type_mdid->IsValid());
-}
-
-
-// Dtor
-CDXLScalarPartListValues::~CDXLScalarPartListValues()
-{
-	m_result_type_mdid->Release();
-	m_elem_type_mdid->Release();
-}
-
-// Operator type
-Edxlopid
-CDXLScalarPartListValues::GetDXLOperator() const
-{
-	return EdxlopScalarPartListValues;
-}
-
-// Operator name
-const CWStringConst *
-CDXLScalarPartListValues::GetOpNameStr() const
-{
-	return CDXLTokens::GetDXLTokenStr(EdxltokenScalarPartListValues);
-}
-
-// partitioning level
-ULONG
-CDXLScalarPartListValues::GetPartitioningLevel() const
-{
-	return m_partitioning_level;
-}
-
-// result type
-IMDId *
-CDXLScalarPartListValues::GetResultTypeMdId() const
-{
-	return m_result_type_mdid;
-}
-
-// element type
-IMDId *
-CDXLScalarPartListValues::GetElemTypeMdId() const
-{
-	return m_elem_type_mdid;
-}
-
-// does the operator return a boolean result
-BOOL
-CDXLScalarPartListValues::HasBoolResult(CMDAccessor *  //md_accessor
-) const
-{
-	return false;
-}
-
-// Serialize operator in DXL format
-void
-CDXLScalarPartListValues::SerializeToDXL(CXMLSerializer *xml_serializer,
-										 const CDXLNode *  // dxlnode
-) const
-{
-	const CWStringConst *element_name = GetOpNameStr();
-
-	xml_serializer->OpenElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-	xml_serializer->AddAttribute(CDXLTokens::GetDXLTokenStr(EdxltokenPartLevel),
-								 m_partitioning_level);
-	m_result_type_mdid->Serialize(
-		xml_serializer,
-		CDXLTokens::GetDXLTokenStr(EdxltokenGPDBScalarOpResultTypeId));
-	m_elem_type_mdid->Serialize(
-		xml_serializer, CDXLTokens::GetDXLTokenStr(EdxltokenArrayElementType));
-	xml_serializer->CloseElement(
-		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
-}
-
-#ifdef GPOS_DEBUG
-// Checks whether operator node is well-structured
-void
-CDXLScalarPartListValues::AssertValid(const CDXLNode *dxlnode,
-									  BOOL	// validate_children
-) const
-{
-	GPOS_ASSERT(0 == dxlnode->Arity());
-}
-#endif	// GPOS_DEBUG
-
-// conversion function
-CDXLScalarPartListValues *
-CDXLScalarPartListValues::Cast(CDXLOperator *dxl_op)
-{
-	GPOS_ASSERT(nullptr != dxl_op);
-	GPOS_ASSERT(EdxlopScalarPartListValues == dxl_op->GetDXLOperator());
-
-	return dynamic_cast<CDXLScalarPartListValues *>(dxl_op);
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/operators/Makefile b/src/backend/gporca/libnaucrates/src/operators/Makefile
index c4791ca0b8..1c12de5229 100644
--- a/src/backend/gporca/libnaucrates/src/operators/Makefile
+++ b/src/backend/gporca/libnaucrates/src/operators/Makefile
@@ -128,12 +128,6 @@ OBJS        = CDXLColDescr.o \
               CDXLScalarOneTimeFilter.o \
               CDXLScalarOpExpr.o \
               CDXLScalarOpList.o \
-              CDXLScalarPartBound.o \
-              CDXLScalarPartBoundInclusion.o \
-              CDXLScalarPartBoundOpen.o \
-              CDXLScalarPartDefault.o \
-              CDXLScalarPartListNullTest.o \
-              CDXLScalarPartListValues.o \
               CDXLScalarProjElem.o \
               CDXLScalarProjList.o \
               CDXLScalarRecheckCondFilter.o \
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerFactory.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerFactory.cpp
index bfc00540a0..ef6d2a981f 100644
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerFactory.cpp
+++ b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerFactory.cpp
@@ -188,13 +188,6 @@ CParseHandlerFactory::Init(CMemoryPool *mp)
 		 &CreateScSubPlanParamListParseHandler},
 		{EdxltokenScalarSubPlanParam, &CreateScSubPlanParamParseHandler},
 		{EdxltokenScalarOpList, &CreateScOpListParseHandler},
-		{EdxltokenScalarPartDefault, &CreateScPartDefaultParseHandler},
-		{EdxltokenScalarPartBound, &CreateScPartBoundParseHandler},
-		{EdxltokenScalarPartBoundInclusion, &CreateScPartBoundInclParseHandler},
-		{EdxltokenScalarPartBoundOpen, &CreateScPartBoundOpenParseHandler},
-		{EdxltokenScalarPartListValues, &CreateScPartListValuesParseHandler},
-		{EdxltokenScalarPartListNullTest,
-		 &CreateScPartListNullTestParseHandler},
 
 		{EdxltokenScalarSubquery, &CreateScSubqueryParseHandler},
 		{EdxltokenScalarBitmapAnd, &CreateScBitmapBoolOpParseHandler},
@@ -984,66 +977,6 @@ CParseHandlerFactory::CreateScOpListParseHandler(
 		CParseHandlerScalarOpList(mp, parse_handler_mgr, parse_handler_root);
 }
 
-// creates a parse handler for parsing a scalar part default
-CParseHandlerBase *
-CParseHandlerFactory::CreateScPartDefaultParseHandler(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-{
-	return GPOS_NEW(mp) CParseHandlerScalarPartDefault(mp, parse_handler_mgr,
-													   parse_handler_root);
-}
-
-// creates a parse handler for parsing a scalar part boundary
-CParseHandlerBase *
-CParseHandlerFactory::CreateScPartBoundParseHandler(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-{
-	return GPOS_NEW(mp)
-		CParseHandlerScalarPartBound(mp, parse_handler_mgr, parse_handler_root);
-}
-
-// creates a parse handler for parsing a scalar part bound inclusion
-CParseHandlerBase *
-CParseHandlerFactory::CreateScPartBoundInclParseHandler(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-{
-	return GPOS_NEW(mp) CParseHandlerScalarPartBoundInclusion(
-		mp, parse_handler_mgr, parse_handler_root);
-}
-
-// creates a parse handler for parsing a scalar part bound openness
-CParseHandlerBase *
-CParseHandlerFactory::CreateScPartBoundOpenParseHandler(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-{
-	return GPOS_NEW(mp) CParseHandlerScalarPartBoundOpen(mp, parse_handler_mgr,
-														 parse_handler_root);
-}
-
-// creates a parse handler for parsing a scalar part list values
-CParseHandlerBase *
-CParseHandlerFactory::CreateScPartListValuesParseHandler(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-{
-	return GPOS_NEW(mp) CParseHandlerScalarPartListValues(mp, parse_handler_mgr,
-														  parse_handler_root);
-}
-
-// creates a parse handler for parsing a scalar part list null test
-CParseHandlerBase *
-CParseHandlerFactory::CreateScPartListNullTestParseHandler(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-{
-	return GPOS_NEW(mp) CParseHandlerScalarPartListNullTest(
-		mp, parse_handler_mgr, parse_handler_root);
-}
-
 // creates a parse handler for parsing direct dispatch info
 CParseHandlerBase *
 CParseHandlerFactory::CreateDirectDispatchParseHandler(
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBound.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBound.cpp
deleted file mode 100644
index e25d522f31..0000000000
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBound.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartBound.cpp
-//
-//	@doc:
-//		Implementation of the SAX parse handler class for parsing part bound
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/parser/CParseHandlerScalarPartBound.h"
-
-#include "naucrates/dxl/operators/CDXLOperatorFactory.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBound.h"
-#include "naucrates/dxl/parser/CParseHandlerFactory.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-using namespace gpdxl;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBound::CParseHandlerScalarPartBound
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CParseHandlerScalarPartBound::CParseHandlerScalarPartBound(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-	: CParseHandlerScalarOp(mp, parse_handler_mgr, parse_handler_root)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBound::StartElement
-//
-//	@doc:
-//		Invoked by Xerces to process an opening tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartBound::StartElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const,	 // element_qname,
-	const Attributes &attrs)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartBound),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	ULONG partition_level = CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenPartLevel,
-		EdxltokenScalarPartBound);
-	IMDId *m_mdid_type = CDXLOperatorFactory::ExtractConvertAttrValueToMdId(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenMDType,
-		EdxltokenScalarPartBound);
-	BOOL is_lower_bound = CDXLOperatorFactory::ExtractConvertAttrValueToBool(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs,
-		EdxltokenScalarPartBoundLower, EdxltokenScalarPartBound);
-
-	m_dxl_node = GPOS_NEW(m_mp)
-		CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarPartBound(
-						   m_mp, partition_level, m_mdid_type, is_lower_bound));
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBound::EndElement
-//
-//	@doc:
-//		Invoked by Xerces to process a closing tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartBound::EndElement(const XMLCh *const,  // element_uri,
-										 const XMLCh *const element_local_name,
-										 const XMLCh *const	 // element_qname
-)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartBound),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != m_dxl_node);
-
-	// deactivate handler
-	m_parse_handler_mgr->DeactivateHandler();
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBoundInclusion.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBoundInclusion.cpp
deleted file mode 100644
index ac5021f11a..0000000000
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBoundInclusion.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartBoundInclusion.cpp
-//
-//	@doc:
-//		Implementation of the SAX parse handler class for parsing part bound inclusion
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/parser/CParseHandlerScalarPartBoundInclusion.h"
-
-#include "naucrates/dxl/operators/CDXLOperatorFactory.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBoundInclusion.h"
-#include "naucrates/dxl/parser/CParseHandlerFactory.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-using namespace gpdxl;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBoundInclusion::CParseHandlerScalarPartBoundInclusion
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CParseHandlerScalarPartBoundInclusion::CParseHandlerScalarPartBoundInclusion(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-	: CParseHandlerScalarOp(mp, parse_handler_mgr, parse_handler_root)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBoundInclusion::StartElement
-//
-//	@doc:
-//		Invoked by Xerces to process an opening tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartBoundInclusion::StartElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const,	 // element_qname,
-	const Attributes &attrs)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartBoundInclusion),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	ULONG partition_level = CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenPartLevel,
-		EdxltokenScalarPartBoundInclusion);
-	BOOL is_lower_bound = CDXLOperatorFactory::ExtractConvertAttrValueToBool(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs,
-		EdxltokenScalarPartBoundLower, EdxltokenScalarPartBoundInclusion);
-
-	m_dxl_node = GPOS_NEW(m_mp)
-		CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarPartBoundInclusion(
-						   m_mp, partition_level, is_lower_bound));
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBoundInclusion::EndElement
-//
-//	@doc:
-//		Invoked by Xerces to process a closing tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartBoundInclusion::EndElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const	// element_qname
-)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartBoundInclusion),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != m_dxl_node);
-
-	// deactivate handler
-	m_parse_handler_mgr->DeactivateHandler();
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBoundOpen.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBoundOpen.cpp
deleted file mode 100644
index 3aa7ddfa7c..0000000000
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartBoundOpen.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartBoundOpen.cpp
-//
-//	@doc:
-//		Implementation of the SAX parse handler class for parsing part bound openness
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/parser/CParseHandlerScalarPartBoundOpen.h"
-
-#include "naucrates/dxl/operators/CDXLOperatorFactory.h"
-#include "naucrates/dxl/operators/CDXLScalarPartBoundOpen.h"
-#include "naucrates/dxl/parser/CParseHandlerFactory.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-using namespace gpdxl;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBoundOpen::CParseHandlerScalarPartBoundOpen
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CParseHandlerScalarPartBoundOpen::CParseHandlerScalarPartBoundOpen(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-	: CParseHandlerScalarOp(mp, parse_handler_mgr, parse_handler_root)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBoundOpen::StartElement
-//
-//	@doc:
-//		Invoked by Xerces to process an opening tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartBoundOpen::StartElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const,	 // element_qname,
-	const Attributes &attrs)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartBoundOpen),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	ULONG partition_level = CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenPartLevel,
-		EdxltokenScalarPartBoundOpen);
-	BOOL is_lower_bound = CDXLOperatorFactory::ExtractConvertAttrValueToBool(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs,
-		EdxltokenScalarPartBoundLower, EdxltokenScalarPartBoundOpen);
-
-	m_dxl_node = GPOS_NEW(m_mp)
-		CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarPartBoundOpen(
-						   m_mp, partition_level, is_lower_bound));
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartBoundOpen::EndElement
-//
-//	@doc:
-//		Invoked by Xerces to process a closing tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartBoundOpen::EndElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const	// element_qname
-)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartBoundOpen),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != m_dxl_node);
-
-	// deactivate handler
-	m_parse_handler_mgr->DeactivateHandler();
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartDefault.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartDefault.cpp
deleted file mode 100644
index ec46811cb6..0000000000
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartDefault.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2014 VMware, Inc. or its affiliates.
-//
-//	@filename:
-//		CParseHandlerScalarPartDefault.cpp
-//
-//	@doc:
-//		Implementation of the SAX parse handler class for parsing part default
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/parser/CParseHandlerScalarPartDefault.h"
-
-#include "naucrates/dxl/operators/CDXLOperatorFactory.h"
-#include "naucrates/dxl/operators/CDXLScalarPartDefault.h"
-#include "naucrates/dxl/parser/CParseHandlerFactory.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-using namespace gpdxl;
-
-XERCES_CPP_NAMESPACE_USE
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartDefault::CParseHandlerScalarPartDefault
-//
-//	@doc:
-//		Ctor
-//
-//---------------------------------------------------------------------------
-CParseHandlerScalarPartDefault::CParseHandlerScalarPartDefault(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-	: CParseHandlerScalarOp(mp, parse_handler_mgr, parse_handler_root)
-{
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartDefault::StartElement
-//
-//	@doc:
-//		Invoked by Xerces to process an opening tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartDefault::StartElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const,	 // element_qname,
-	const Attributes &attrs)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartDefault),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	ULONG partition_level = CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenPartLevel,
-		EdxltokenScalarPartDefault);
-	m_dxl_node = GPOS_NEW(m_mp) CDXLNode(
-		m_mp, GPOS_NEW(m_mp) CDXLScalarPartDefault(m_mp, partition_level));
-}
-
-//---------------------------------------------------------------------------
-//	@function:
-//		CParseHandlerScalarPartDefault::EndElement
-//
-//	@doc:
-//		Invoked by Xerces to process a closing tag
-//
-//---------------------------------------------------------------------------
-void
-CParseHandlerScalarPartDefault::EndElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const	// element_qname
-)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartDefault),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != m_dxl_node);
-
-	// deactivate handler
-	m_parse_handler_mgr->DeactivateHandler();
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartListNullTest.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartListNullTest.cpp
deleted file mode 100644
index 6441a4f798..0000000000
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartListNullTest.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2017 VMware, Inc. or its affiliates.
-//
-//	Implementation of the SAX parse handler class for parsing part list
-//	null test
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/parser/CParseHandlerScalarPartListNullTest.h"
-
-#include "naucrates/dxl/operators/CDXLOperatorFactory.h"
-#include "naucrates/dxl/operators/CDXLScalarPartListNullTest.h"
-#include "naucrates/dxl/parser/CParseHandlerFactory.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-using namespace gpdxl;
-
-XERCES_CPP_NAMESPACE_USE
-
-// Ctor
-CParseHandlerScalarPartListNullTest::CParseHandlerScalarPartListNullTest(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-	: CParseHandlerScalarOp(mp, parse_handler_mgr, parse_handler_root)
-{
-}
-
-// Invoked by Xerces to process an opening tag
-void
-CParseHandlerScalarPartListNullTest::StartElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const,	 // element_qname,
-	const Attributes &attrs)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartListNullTest),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	ULONG partition_level = CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenPartLevel,
-		EdxltokenScalarPartListNullTest);
-	BOOL is_null = CDXLOperatorFactory::ExtractConvertAttrValueToBool(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs,
-		EdxltokenScalarIsNull, EdxltokenScalarPartListNullTest);
-
-	m_dxl_node =
-		GPOS_NEW(m_mp) CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarPartListNullTest(
-										  m_mp, partition_level, is_null));
-}
-
-// Invoked by Xerces to process a closing tag
-void
-CParseHandlerScalarPartListNullTest::EndElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const	// element_qname
-)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartListNullTest),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != m_dxl_node);
-
-	// deactivate handler
-	m_parse_handler_mgr->DeactivateHandler();
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartListValues.cpp b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartListValues.cpp
deleted file mode 100644
index 5c7b82329c..0000000000
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerScalarPartListValues.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//---------------------------------------------------------------------------
-//	Greenplum Database
-//	Copyright (C) 2017 VMware, Inc. or its affiliates.
-//
-//	Implementation of the SAX parse handler class for parsing part list
-//	values
-//---------------------------------------------------------------------------
-
-#include "naucrates/dxl/parser/CParseHandlerScalarPartListValues.h"
-
-#include "naucrates/dxl/operators/CDXLOperatorFactory.h"
-#include "naucrates/dxl/operators/CDXLScalarPartListValues.h"
-#include "naucrates/dxl/parser/CParseHandlerFactory.h"
-#include "naucrates/dxl/parser/CParseHandlerScalarOp.h"
-
-using namespace gpdxl;
-
-XERCES_CPP_NAMESPACE_USE
-
-// Ctor
-CParseHandlerScalarPartListValues::CParseHandlerScalarPartListValues(
-	CMemoryPool *mp, CParseHandlerManager *parse_handler_mgr,
-	CParseHandlerBase *parse_handler_root)
-	: CParseHandlerScalarOp(mp, parse_handler_mgr, parse_handler_root)
-{
-}
-
-// Invoked by Xerces to process an opening tag
-void
-CParseHandlerScalarPartListValues::StartElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const,	 // element_qname,
-	const Attributes &attrs)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartListValues),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	ULONG partition_level = CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs, EdxltokenPartLevel,
-		EdxltokenScalarPartListValues);
-	IMDId *mdid_result = CDXLOperatorFactory::ExtractConvertAttrValueToMdId(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs,
-		EdxltokenGPDBScalarOpResultTypeId, EdxltokenScalarPartListValues);
-	IMDId *mdid_element = CDXLOperatorFactory::ExtractConvertAttrValueToMdId(
-		m_parse_handler_mgr->GetDXLMemoryManager(), attrs,
-		EdxltokenArrayElementType, EdxltokenScalarPartListValues);
-	m_dxl_node = GPOS_NEW(m_mp)
-		CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarPartListValues(
-						   m_mp, partition_level, mdid_result, mdid_element));
-}
-
-// Invoked by Xerces to process a closing tag
-void
-CParseHandlerScalarPartListValues::EndElement(
-	const XMLCh *const,	 // element_uri,
-	const XMLCh *const element_local_name,
-	const XMLCh *const	// element_qname
-)
-{
-	if (0 != XMLString::compareString(
-				 CDXLTokens::XmlstrToken(EdxltokenScalarPartListValues),
-				 element_local_name))
-	{
-		CWStringDynamic *str = CDXLUtils::CreateDynamicStringFromXMLChArray(
-			m_parse_handler_mgr->GetDXLMemoryManager(), element_local_name);
-		GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag,
-				   str->GetBuffer());
-	}
-
-	GPOS_ASSERT(nullptr != m_dxl_node);
-
-	// deactivate handler
-	m_parse_handler_mgr->DeactivateHandler();
-}
-
-// EOF
diff --git a/src/backend/gporca/libnaucrates/src/parser/Makefile b/src/backend/gporca/libnaucrates/src/parser/Makefile
index 7f141e1161..d1fff568e8 100644
--- a/src/backend/gporca/libnaucrates/src/parser/Makefile
+++ b/src/backend/gporca/libnaucrates/src/parser/Makefile
@@ -154,12 +154,6 @@ OBJS        = CParseHandlerAgg.o \
               CParseHandlerScalarOp.o \
               CParseHandlerScalarOpExpr.o \
               CParseHandlerScalarOpList.o \
-              CParseHandlerScalarPartBound.o \
-              CParseHandlerScalarPartBoundInclusion.o \
-              CParseHandlerScalarPartBoundOpen.o \
-              CParseHandlerScalarPartDefault.o \
-              CParseHandlerScalarPartListNullTest.o \
-              CParseHandlerScalarPartListValues.o \
               CParseHandlerScalarSubPlan.o \
               CParseHandlerScalarSubPlanParam.o \
               CParseHandlerScalarSubPlanParamList.o \
diff --git a/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp b/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
index 8da411719e..0e8b12e332 100644
--- a/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
+++ b/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
@@ -255,12 +255,6 @@ CDXLTokens::Init(CMemoryPool *mp)
 		{EdxltokenPartLevelFilterList, GPOS_WSZ_LIT("PartFilters")},
 		{EdxltokenPartLevel, GPOS_WSZ_LIT("Level")},
 		{EdxltokenScalarPartDefault, GPOS_WSZ_LIT("DefaultPart")},
-		{EdxltokenScalarPartBound, GPOS_WSZ_LIT("PartBound")},
-		{EdxltokenScalarPartBoundLower, GPOS_WSZ_LIT("LowerBound")},
-		{EdxltokenScalarPartBoundInclusion, GPOS_WSZ_LIT("PartBoundInclusion")},
-		{EdxltokenScalarPartBoundOpen, GPOS_WSZ_LIT("PartBoundOpen")},
-		{EdxltokenScalarPartListValues, GPOS_WSZ_LIT("PartListValues")},
-		{EdxltokenScalarPartListNullTest, GPOS_WSZ_LIT("PartListNullTest")},
 		{EdxltokenScalarResidualFilter, GPOS_WSZ_LIT("ResidualFilter")},
 		{EdxltokenScalarPartFilterExpr, GPOS_WSZ_LIT("PartFilterExpr")},
 


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