src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h (692 lines of code) (raw):
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2009 Greenplum, Inc.
//
// @filename:
// dxltokens.h
//
// @doc:
// Constants for the tokens used in the DXL document.
// Tokens are represented in both in CWStringConst format, and as XMLCh
// arrays - the native format of the Xerces parser.
// Constants are dynamically created during loading of the dxl library.
//---------------------------------------------------------------------------
#ifndef GPDXL_dxltokens_H
#define GPDXL_dxltokens_H
#include <xercesc/sax2/DefaultHandler.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
#include "gpos/base.h"
#include "gpos/common/CHashMap.h"
#include "gpos/string/CWStringConst.h"
namespace gpdxl
{
using namespace gpos;
XERCES_CPP_NAMESPACE_USE
//fwd decl
class CDXLMemoryManager;
enum Edxltoken
{
EdxltokenDXLMessage,
EdxltokenComment,
EdxltokenPlan,
EdxltokenPlanId,
EdxltokenPlanSpaceSize,
EdxltokenSamplePlans,
EdxltokenSamplePlan,
EdxltokenCostDistr,
EdxltokenRelativeCost,
EdxltokenX,
EdxltokenY,
EdxltokenOptimizerConfig,
EdxltokenEnumeratorConfig,
EdxltokenStatisticsConfig,
EdxltokenDampingFactorFilter,
EdxltokenDampingFactorJoin,
EdxltokenDampingFactorGroupBy,
EdxltokenCTEConfig,
EdxltokenCTEInliningCutoff,
EdxltokenCostModelConfig,
EdxltokenCostModelType,
EdxltokenSegmentsForCosting,
EdxltokenHint,
EdxltokenPlanHint,
EdxltokenScanHint,
EdxltokenRowHint,
EdxltokenJoinHint,
EdxltokenJoinTypeHint,
EdxltokenLeading,
EdxltokenJoinArityForAssociativityCommutativity,
EdxltokenArrayExpansionThreshold,
EdxltokenJoinOrderDPThreshold,
EdxltokenBroadcastThreshold,
EdxltokenEnforceConstraintsOnDML,
EdxltokenPushGroupByBelowSetopThreshold,
EdxltokenXformBindThreshold,
EdxltokenSkewFactor,
EdxltokenMaxStatsBuckets,
EdxltokenWindowOids,
EdxltokenOidRowNumber,
EdxltokenOidRank,
EdxltokenPlanSamples,
EdxltokenMetadata,
EdxltokenTraceFlags,
EdxltokenMDRequest,
EdxltokenSysids,
EdxltokenSysid,
EdxltokenThread,
EdxltokenNoPhysicalHashJoin,
EdxltokenNoPhysicalNLJoin,
EdxltokenNoPhysicalMergeJoin,
EdxltokenPhysical,
EdxltokenPhysicalTableScan,
EdxltokenPhysicalBitmapTableScan,
EdxltokenPhysicalDynamicBitmapTableScan,
EdxltokenPhysicalForeignScan,
EdxltokenPhysicalIndexScan,
EdxltokenPhysicalIndexOnlyScan,
EdxltokenPhysicalHashJoin,
EdxltokenPhysicalNLJoin,
EdxltokenPhysicalNLJoinIndex,
EdxltokenPhysicalMergeJoin,
EdxltokenPhysicalGatherMotion,
EdxltokenPhysicalBroadcastMotion,
EdxltokenPhysicalRedistributeMotion,
EdxltokenPhysicalRoutedDistributeMotion,
EdxltokenPhysicalRandomMotion,
EdxltokenPhysicalSort,
EdxltokenPhysicalLimit,
EdxltokenPhysicalResult,
EdxltokenPhysicalAggregate,
EdxltokenPhysicalAppend,
EdxltokenPhysicalMaterialize,
EdxltokenPhysicalDynamicForeignScan,
EdxltokenPhysicalSequence,
EdxltokenPhysicalDynamicTableScan,
EdxltokenPhysicalDynamicIndexScan,
EdxltokenPhysicalTVF,
EdxltokenPhysicalWindow,
EdxltokenPhysicalPartitionSelector,
EdxltokenPhysicalPartitionSelectorId,
EdxltokenPhysicalPartitionSelectorScanId,
EdxltokenPhysicalValuesScan,
EdxltokenPhysicalCTEProducer,
EdxltokenPhysicalCTEConsumer,
EdxltokenDuplicateSensitive,
EdxltokenSegmentIdCol,
EdxltokenScalar,
EdxltokenScalarProjList,
EdxltokenScalarFilter,
EdxltokenScalarAggref,
EdxltokenScalarWindowref,
EdxltokenScalarArrayComp,
EdxltokenScalarBoolTestIsTrue,
EdxltokenScalarBoolTestIsNotTrue,
EdxltokenScalarBoolTestIsFalse,
EdxltokenScalarBoolTestIsNotFalse,
EdxltokenScalarBoolTestIsUnknown,
EdxltokenScalarBoolTestIsNotUnknown,
EdxltokenScalarBoolAnd,
EdxltokenScalarBoolOr,
EdxltokenScalarBoolNot,
EdxltokenScalarMin,
EdxltokenScalarMax,
EdxltokenScalarCaseTest,
EdxltokenScalarCoalesce,
EdxltokenScalarComp,
EdxltokenScalarConstValue,
EdxltokenScalarDistinctComp,
EdxltokenScalarFuncExpr,
EdxltokenScalarIsNull,
EdxltokenScalarIsNotNull,
EdxltokenScalarNullIf,
EdxltokenScalarHashCondList,
EdxltokenScalarMergeCondList,
EdxltokenScalarHashExprList,
EdxltokenScalarHashExpr,
EdxltokenScalarIdent,
EdxltokenScalarIfStmt,
EdxltokenScalarSwitch,
EdxltokenScalarSwitchCase,
EdxltokenScalarSubPlan,
EdxltokenScalarJoinFilter,
EdxltokenScalarRecheckCondFilter,
EdxltokenScalarLimitCount,
EdxltokenScalarLimitOffset,
EdxltokenScalarOneTimeFilter,
EdxltokenScalarOpExpr,
EdxltokenScalarParam,
EdxltokenScalarProjElem,
EdxltokenScalarCast,
EdxltokenScalarCoerceToDomain,
EdxltokenScalarCoerceViaIO,
EdxltokenScalarArrayCoerceExpr,
EdxltokenScalarSortCol,
EdxltokenScalarSortColList,
EdxltokenScalarGroupingColList,
EdxltokenScalarSortGroupClause,
EdxltokenScalarBitmapAnd,
EdxltokenScalarBitmapOr,
EdxltokenScalarArray,
EdxltokenScalarArrayRef,
EdxltokenScalarArrayRefIndexList,
EdxltokenScalarArrayRefIndexListBound,
EdxltokenScalarArrayRefIndexListLower,
EdxltokenScalarArrayRefIndexListUpper,
EdxltokenScalarArrayRefExpr,
EdxltokenScalarArrayRefAssignExpr,
EdxltokenScalarAssertConstraint,
EdxltokenScalarAssertConstraintList,
EdxltokenScalarSubPlanType,
EdxltokenScalarSubPlanTypeScalar,
EdxltokenScalarSubPlanTypeExists,
EdxltokenScalarSubPlanTypeNotExists,
EdxltokenScalarSubPlanTypeAny,
EdxltokenScalarSubPlanTypeAll,
EdxltokenScalarSubPlanTestExpr,
EdxltokenScalarSubPlanParamList,
EdxltokenScalarSubPlanParam,
EdxltokenScalarSubquery,
EdxltokenScalarSubqueryAll,
EdxltokenScalarSubqueryAny,
EdxltokenScalarSubqueryExists,
EdxltokenScalarSubqueryNotExists,
EdxltokenScalarDMLAction,
EdxltokenScalarOpList,
EdxltokenPartLevelEqFilterList,
EdxltokenPartLevelFilterList,
EdxltokenPartLevel,
EdxltokenScalarPartDefault,
EdxltokenScalarResidualFilter,
EdxltokenScalarPartFilterExpr,
EdxltokenScalarBitmapIndexProbe,
EdxltokenScalarValuesList,
EdxltokenWindowFrame,
EdxltokenScalarWindowFrameLeadingEdge,
EdxltokenScalarWindowFrameTrailingEdge,
EdxltokenWindowKeyList,
EdxltokenWindowKey,
EdxltokenWindowSpecList,
EdxltokenWindowSpec,
EdxltokenWindowFrameSpec,
EdxltokenWindowFSRow,
EdxltokenWindowFSRange,
EdxltokenWindowFSGroups,
EdxltokenWindowLeadingBoundary,
EdxltokenWindowTrailingBoundary,
EdxltokenWindowBoundaryUnboundedPreceding,
EdxltokenWindowBoundaryBoundedPreceding,
EdxltokenWindowBoundaryCurrentRow,
EdxltokenWindowBoundaryUnboundedFollowing,
EdxltokenWindowBoundaryBoundedFollowing,
EdxltokenWindowBoundaryDelayedBoundedPreceding,
EdxltokenWindowBoundaryDelayedBoundedFollowing,
EdxltokenWindowExclusionStrategy,
EdxltokenWindowESNone,
EdxltokenWindowESNulls,
EdxltokenWindowESCurrentRow,
EdxltokenWindowESGroup,
EdxltokenWindowESTies,
EdxltokenWindowStartInRangeOid,
EdxltokenWindowEndInRangeOid,
EdxltokenWindowInRangeColl,
EdxltokenWindowInRangeAsc,
EdxltokenWindowInRangeNullsFirst,
EdxltokenWindowrefOid,
EdxltokenWindowrefDistinct,
EdxltokenWindowrefStarArg,
EdxltokenWindowrefSimpleAgg,
EdxltokenWindowrefStrategy,
EdxltokenWindowrefStageImmediate,
EdxltokenWindowrefStagePreliminary,
EdxltokenWindowrefStageRowKey,
EdxltokenWindowrefWinSpecPos,
// FIELDSELECT
EdxltokenScalarFieldSelect,
EdxltokenScalarFieldSelectFieldType,
EdxltokenScalarFieldSelectFieldCollation,
EdxltokenScalarFieldSelectFieldNumber,
EdxltokenScalarFieldSelectTypeModifier,
EdxltokenValue,
EdxltokenTypeId,
EdxltokenTypeIds,
EdxltokenConstTuple,
EdxltokenDatum,
// CoerceToDomain and CoerceViaIO and ArrayCoerceExpr related tokens
EdxltokenTypeMod,
EdxltokenCoercionForm,
EdxltokenLocation,
EdxltokenIsExplicit,
EdxltokenJoinType,
EdxltokenJoinInner,
EdxltokenJoinLeft,
EdxltokenJoinFull,
EdxltokenJoinRight,
EdxltokenJoinIn,
EdxltokenJoinLeftAntiSemiJoin,
EdxltokenJoinLeftAntiSemiJoinNotIn,
EdxltokenMergeJoinUniqueOuter,
EdxltokenAggStrategy,
EdxltokenAggStrategyPlain,
EdxltokenAggStrategySorted,
EdxltokenAggStrategyHashed,
EdxltokenAggStreamSafe,
EdxltokenAggrefOid,
EdxltokenAggrefDistinct,
EdxltokenAggrefIsAggStar,
EdxltokenAggrefArgTypes,
EdxltokenAggrefKind,
EdxltokenAggrefStage,
EdxltokenAggrefLookups,
EdxltokenAggrefStageNormal,
EdxltokenAggrefStagePartial,
EdxltokenAggrefStageIntermediate,
EdxltokenAggrefStageFinal,
EdxltokenAggrefKindNormal,
EdxltokenAggrefKindOrderedSet,
EdxltokenAggrefKindHypothetical,
EdxltokenArrayType,
EdxltokenArrayElementType,
EdxltokenArrayMultiDim,
EdxltokenTableDescr,
EdxltokenProperties,
EdxltokenOutputCols,
EdxltokenCost,
EdxltokenStartupCost,
EdxltokenTotalCost,
EdxltokenRows,
EdxltokenWidth,
EdxltokenRelPages,
EdxltokenRelAllVisible,
EdxltokenCTASOptions,
EdxltokenCTASOption,
EdxltokenExecuteAsUser,
EdxltokenAlias,
EdxltokenTableName,
EdxltokenDerivedTableName,
EdxltokenColDescr,
EdxltokenColRef,
EdxltokenColumns,
EdxltokenColumn,
EdxltokenColName,
EdxltokenTagColType,
EdxltokenColId,
EdxltokenAttno,
EdxltokenColDropped,
EdxltokenColWidth,
EdxltokenColNullFreq,
EdxltokenColNdvRemain,
EdxltokenColFreqRemain,
EdxltokenColStatsMissing,
EdxltokenParamId,
EdxltokenCtidColName,
EdxltokenOidColName,
EdxltokenXminColName,
EdxltokenCminColName,
EdxltokenXmaxColName,
EdxltokenCmaxColName,
EdxltokenTableOidColName,
EdxltokenGpSegmentIdColName,
EdxltokenGpForeignServerColName,
// For Logical Select
EdxltokenSecurityQuals,
EdxltokenActionColId,
EdxltokenCtidColId,
EdxltokenGpSegmentIdColId,
EdxltokenTupleOidColId,
EdxltokenSplitUpdate,
EdxltokenInputSegments,
EdxltokenOutputSegments,
EdxltokenSegment,
EdxltokenSegId,
EdxltokenGroupingCols,
EdxltokenGroupingCol,
EdxltokenParamKind,
EdxltokenAppendIsTarget,
EdxltokenAppendIsZapped,
EdxltokenSelectorIds,
EdxltokenOpNo,
EdxltokenOpName,
EdxltokenOpType,
EdxltokenOpTypeAny,
EdxltokenOpTypeAll,
EdxltokenTypeName,
EdxltokenUnknown,
EdxltokenFuncId,
EdxltokenFuncRetSet,
EdxltokenFuncVariadic,
EdxltokenSortOpId,
EdxltokenSortOpName,
EdxltokenSortDiscardDuplicates,
EdxltokenSortNullsFirst,
EdxltokenMaterializeEager,
EdxltokenSpoolId,
EdxltokenSpoolType,
EdxltokenSpoolMaterialize,
EdxltokenSpoolSort,
EdxltokenSpoolMultiSlice,
EdxltokenExecutorSliceId,
EdxltokenConsumerSliceCount,
EdxltokenComparisonOp,
EdxltokenXMLDocHeader,
EdxltokenNamespaceAttr,
EdxltokenNamespacePrefix,
EdxltokenNamespaceURI,
EdxltokenBracketOpenTag,
EdxltokenBracketCloseTag,
EdxltokenBracketOpenEndTag,
EdxltokenBracketCloseSingletonTag,
EdxltokenColon,
EdxltokenSemicolon,
EdxltokenComma,
EdxltokenDot,
EdxltokenDotSemicolon,
EdxltokenSpace,
EdxltokenQuote,
EdxltokenEq,
EdxltokenIndent,
EdxltokenTrue,
EdxltokenFalse,
// nest params related constants
EdxltokenNLJIndexParamList,
EdxltokenNLJIndexParam,
EdxltokenNLJIndexOuterRefAsParam,
// metadata-related constants
EdxltokenRelation,
EdxltokenRelationCTAS,
EdxltokenName,
EdxltokenSchema,
EdxltokenTablespace,
EdxltokenOid,
EdxltokenKind,
EdxltokenVersion,
EdxltokenMdid,
EdxltokenLockMode,
EdxltokenAclMode,
EdxltokenMDTypeRequest,
EdxltokenTypeInfo,
EdxltokenFuncInfo,
EdxltokenRelationMdid,
EdxltokenRelationStats,
EdxltokenColumnStats,
EdxltokenColumnStatsBucket,
EdxltokenRelationExtendedStats,
EdxltokenExtendedStats,
EdxltokenExtendedStatsInfo,
EdxltokenMVDependencyList,
EdxltokenMVDependency,
EdxltokenMVNDistinctList,
EdxltokenMVNDistinct,
EdxltokenDegree,
EdxltokenFrom,
EdxltokenTo,
EdxltokenEmptyRelation,
EdxltokenIsNull,
EdxltokenLintValue,
EdxltokenDoubleValue,
EdxltokenAssignedQueryIdForTargetRel,
EdxltokenRelTemporary,
EdxltokenRelStorageType,
EdxltokenRelStorageHeap,
EdxltokenRelStorageAppendOnlyCols,
EdxltokenRelStorageAppendOnlyRows,
EdxltokenRelStoragePAX,
EdxltokenRelStorageMixedPartitioned,
EdxltokenRelStorageForeign,
EdxltokenRelStorageCompositeType,
EdxltokenPartKeys,
EdxltokenPartTypes,
EdxltokenRelDistrPolicy,
EdxltokenRelDistrMasterOnly,
EdxltokenRelDistrHash,
EdxltokenRelDistrRandom,
EdxltokenRelDistrReplicated,
EdxltokenRelDistrUniversal,
EdxltokenConvertHashToRandom,
EdxltokenRelDistrOpfamilies,
EdxltokenRelDistrOpfamily,
EdxltokenRelDistrOpclasses,
EdxltokenRelDistrOpclass,
EdxltokenRelForeignServer,
EdxltokenMetadataColumns,
EdxltokenMetadataColumn,
EdxltokenColumnNullable,
EdxltokenKeys,
EdxltokenDistrColumns,
EdxltokenIndexKeyCols,
EdxltokenIndexIncludedCols,
EdxltokenIndexReturnableCols,
EdxltokenIndexClustered,
EdxltokenIndexAmCanOrder,
EdxltokenIndexPartial,
EdxltokenIndexType,
EdxltokenIndexTypeBtree,
EdxltokenIndexTypeHash,
EdxltokenIndexTypeBitmap,
EdxltokenIndexTypeGist,
EdxltokenIndexTypeGin,
EdxltokenIndexItemType,
EdxltokenIndexKeysSortDirection,
EdxltokenIndexKeysNullsDirection,
EdxltokenIndexKeySortASC,
EdxltokenIndexKeySortDESC,
EdxltokenIndexKeyNullsFirst,
EdxltokenIndexKeyNullsLast,
EdxltokenOpfamily,
EdxltokenOpfamilies,
EdxltokenTypeInt4,
EdxltokenTypeBool,
EdxltokenMetadataIdList,
EdxltokenIndexInfoList,
EdxltokenIndexInfo,
EdxltokenIndex,
EdxltokenPartitions,
EdxltokenPartition,
EdxltokenConstraints,
EdxltokenConstraint,
EdxltokenCheckConstraints,
EdxltokenCheckConstraint,
EdxltokenPartConstraint,
EdxltokenDefaultPartition,
EdxltokenPartConstraintUnbounded,
EdxltokenMDType,
EdxltokenMDTypeRedistributable,
EdxltokenMDTypeHashable,
EdxltokenMDTypeMergeJoinable,
EdxltokenMDTypeComposite,
EdxltokenMDTypeIsTextRelated,
EdxltokenMDTypeFixedLength,
EdxltokenMDTypeLength,
EdxltokenMDTypeByValue,
EdxltokenMDTypeDistrOpfamily,
EdxltokenMDTypeLegacyDistrOpfamily,
EdxltokenMDTypePartOpfamily,
EdxltokenMDTypeEqOp,
EdxltokenMDTypeNEqOp,
EdxltokenMDTypeLTOp,
EdxltokenMDTypeLEqOp,
EdxltokenMDTypeGTOp,
EdxltokenMDTypeGEqOp,
EdxltokenMDTypeCompOp,
EdxltokenMDTypeHashOp,
EdxltokenMDTypeArray,
EdxltokenMDTypeRelid,
EdxltokenMDTypeAggMin,
EdxltokenMDTypeAggMax,
EdxltokenMDTypeAggAvg,
EdxltokenMDTypeAggSum,
EdxltokenMDTypeAggCount,
EdxltokenGPDBScalarOp,
EdxltokenGPDBScalarOpLeftTypeId,
EdxltokenGPDBScalarOpRightTypeId,
EdxltokenGPDBScalarOpResultTypeId,
EdxltokenGPDBScalarOpFuncId,
EdxltokenGPDBScalarOpCommOpId,
EdxltokenGPDBScalarOpInverseOpId,
EdxltokenGPDBScalarOpLTOpId,
EdxltokenGPDBScalarOpGTOpId,
EdxltokenGPDBScalarOpCmpType,
EdxltokenGPDBScalarOpHashOpfamily,
EdxltokenGPDBScalarOpLegacyHashOpfamily,
EdxltokenCmpEq,
EdxltokenCmpNeq,
EdxltokenCmpLt,
EdxltokenCmpLeq,
EdxltokenCmpGt,
EdxltokenCmpGeq,
EdxltokenCmpIDF,
EdxltokenCmpOther,
EdxltokenReturnsNullOnNullInput,
EdxltokenIsNDVPreserving,
EdxltokenGPDBFunc,
EdxltokenGPDBFuncStability,
EdxltokenGPDBFuncStable,
EdxltokenGPDBFuncImmutable,
EdxltokenGPDBFuncVolatile,
EdxltokenGPDBFuncResultTypeId,
EdxltokenGPDBFuncReturnsSet,
EdxltokenGPDBFuncStrict,
EdxltokenGPDBFuncNDVPreserving,
EdxltokenGPDBFuncIsAllowedForPS,
EdxltokenGPDBCast,
EdxltokenGPDBCastBinaryCoercible,
EdxltokenGPDBCastSrcType,
EdxltokenGPDBCastDestType,
EdxltokenGPDBCastFuncId,
EdxltokenGPDBCastSrcElemType,
EdxltokenGPDBCastCoercePathType,
EdxltokenGPDBArrayCoerceCast,
EdxltokenGPDBMDScCmp,
EdxltokenGPDBAgg,
EdxltokenGPDBIsAggOrdered,
EdxltokenGPDBIsAggRepSafe,
EdxltokenGPDBAggResultTypeId,
EdxltokenGPDBAggIntermediateResultTypeId,
EdxltokenGPDBAggSplittable,
EdxltokenGPDBAggHashAggCapable,
EdxltokenEntireRow,
EdxltokenScalarExpr, // top level scalar expression
EdxltokenQuery,
EdxltokenQueryOutput,
EdxltokenLogical,
EdxltokenLogicalGet,
EdxltokenLogicalForeignGet,
EdxltokenLogicalProject,
EdxltokenLogicalSelect,
EdxltokenLogicalJoin,
EdxltokenLogicalCTEProducer,
EdxltokenLogicalCTEConsumer,
EdxltokenCTEList,
EdxltokenLogicalCTEAnchor,
EdxltokenLogicalLimit,
EdxltokenLogicalOutput,
EdxltokenLogicalConstTable,
EdxltokenLogicalGrpBy,
EdxltokenLogicalSetOperation,
EdxltokenLogicalTVF,
EdxltokenLogicalWindow,
EdxltokenLogicalInsert,
EdxltokenLogicalDelete,
EdxltokenLogicalUpdate,
EdxltokenLogicalCTAS,
EdxltokenPhysicalCTAS,
EdxltokenPhysicalDMLInsert,
EdxltokenPhysicalDMLDelete,
EdxltokenPhysicalDMLUpdate,
EdxltokenDirectDispatchInfo,
EdxltokenDirectDispatchIsRaw,
EdxltokenDirectDispatchKeyValue,
EdxltokenPhysicalSplit,
EdxltokenPhysicalAssert,
EdxltokenErrorCode,
EdxltokenErrorMessage,
EdxltokenOnCommitAction,
EdxltokenOnCommitNOOP,
EdxltokenOnCommitPreserve,
EdxltokenOnCommitDelete,
EdxltokenOnCommitDrop,
EdxltokenInsertCols,
EdxltokenDeleteCols,
EdxltokenNewCols,
EdxltokenOldCols,
EdxltokenCTEId,
EdxltokenLogicalGrpCols,
EdxltokenInputCols,
EdxltokenCastAcrossInputs,
EdxltokenLogicalUnion,
EdxltokenLogicalUnionAll,
EdxltokenLogicalIntersect,
EdxltokenLogicalIntersectAll,
EdxltokenLogicalDifference,
EdxltokenLogicalDifferenceAll,
EdxltokenIndexDescr,
EdxltokenIndexName,
EdxltokenIndexScanDirection,
EdxltokenIndexScanDirectionForward,
EdxltokenIndexScanDirectionBackward,
EdxltokenIndexScanDirectionNoMovement,
EdxltokenScalarIndexCondList,
EdxltokenStackTrace,
EdxltokenStatistics,
EdxltokenStatsBaseRelation,
EdxltokenStatsDerivedRelation,
EdxltokenStatsDerivedColumn,
EdxltokenStatsBucketLowerBound,
EdxltokenStatsBucketUpperBound,
EdxltokenStatsFrequency,
EdxltokenStatsDistinct,
EdxltokenStatsBoundClosed,
// search strategy
EdxltokenSearchStrategy,
EdxltokenSearchStage,
EdxltokenXform,
EdxltokenTimeThreshold,
EdxltokenCostThreshold,
// cost model parameters
EdxltokenCostParams,
EdxltokenCostParam,
EdxltokenCostParamLowerBound,
EdxltokenCostParamUpperBound,
EdxltokenTopLimitUnderDML,
EdxltokenCtasOptionType,
EdxltokenVarTypeModList,
EdxltokenIndexTypeBrin,
EdxltokenForeignServerOid,
EdxltokenPhysicalDynamicIndexOnlyScan,
EdxltokenAbsolute,
EdxltokenAdd,
EdxltokenSubtract,
EdxltokenMultiply,
EdxltokenSentinel
};
//---------------------------------------------------------------------------
// @class:
// CDXLTokens
//
// @doc:
// DXL tokens.
//
//---------------------------------------------------------------------------
class CDXLTokens
{
private:
// element for mapping Edxltoken to WCHARs
struct SWszMapElem
{
Edxltoken m_edxlt;
const WCHAR *m_wsz;
};
// element for mapping Edxltoken to CWStringConst
struct SStrMapElem
{
Edxltoken m_edxlt{EdxltokenSentinel};
CWStringConst *m_pstr{nullptr};
// ctor
SStrMapElem() = default;
// ctor
SStrMapElem(Edxltoken edxlt, CWStringConst *str)
: m_edxlt(edxlt), m_pstr(str)
{
GPOS_ASSERT(edxlt < EdxltokenSentinel);
GPOS_ASSERT(str->IsValid());
}
//dtor
~SStrMapElem()
{
GPOS_DELETE(m_pstr);
}
};
// element for mapping Edxltoken to XML string
struct SXMLStrMapElem
{
Edxltoken m_edxlt{EdxltokenSentinel};
XMLCh *m_xmlsz{nullptr};
// ctor
SXMLStrMapElem() = default;
// ctor
SXMLStrMapElem(Edxltoken edxlt, XMLCh *xml_val)
: m_edxlt(edxlt), m_xmlsz(xml_val)
{
GPOS_ASSERT(edxlt < EdxltokenSentinel);
GPOS_ASSERT(nullptr != xml_val);
}
//dtor
~SXMLStrMapElem()
{
GPOS_DELETE_ARRAY(reinterpret_cast<BYTE *>(m_xmlsz));
}
};
// array maintaining the mapping Edxltoken -> CWStringConst
static SStrMapElem *m_pstrmap;
// array maintaining the mapping Edxltoken -> XML string
static SXMLStrMapElem *m_pxmlszmap;
// memory pool -- not owned
static CMemoryPool *m_mp;
// local dxl memory manager
static CDXLMemoryManager *m_dxl_memory_manager;
// create a string in Xerces XMLCh* format
static XMLCh *XmlstrFromWsz(const WCHAR *wsz);
public:
// retrieve a token in CWStringConst and XMLCh* format, respectively
static const CWStringConst *GetDXLTokenStr(Edxltoken token_type);
static const XMLCh *XmlstrToken(Edxltoken token_type);
// initialize constants. Must be called before constants are accessed.
static void Init(CMemoryPool *mp);
// cleanup tokens
static void Terminate();
};
} // namespace gpdxl
#endif // !GPDXL_dxltokens_H
// EOF