greenplumn traceflags 源码

2022-08-18 浏览 (421)

greenplumn traceflags 代码

文件路径:/src/backend/gporca/libnaucrates/include/naucrates/traceflags/traceflags.h

/---------------------------------------------------------------------------
/	Greenplum Database
/	Copyright (C) 2011 EMC Corp.
/
/	@filename:
/		traceflags.h
/
/	@doc:
/		enum of traceflags which can be used in a task's context
/---------------------------------------------------------------------------
#ifndef GPOPT_traceflags_H
#define GPOPT_traceflags_H

#include "gpos/common/CBitSet.h"

namespace gpos
{
enum EOptTraceFlag
{
	/ reserve range 100000-199999 for GPOPT

	/
	/ debug printing flags /
	/

	/ print input query
	EopttracePrintQuery = 101000,

	/ print output plan
	EopttracePrintPlan = 101001,

	/ print xform info
	EopttracePrintXform = 101002,

	/ print input and output of xforms
	EopttracePrintXformResults = 101003,

	/ print MEMO after exploration
	EopttracePrintMemoAfterExploration = 101004,

	/ print MEMO after implementation
	EopttracePrintMemoAfterImplementation = 101005,

	/ print MEMO after optimization
	EopttracePrintMemoAfterOptimization = 101006,

	/ print jobs in scheduler on each job completion
	EopttracePrintJobScheduler = 101007,

	/ print expression properties
	EopttracePrintExpressionProperties = 101008,

	/ print group properties
	EopttracePrintGroupProperties = 101009,

	/ print optimization context
	EopttracePrintOptimizationContext = 101010,

	/ print xform pattern
	EopttracePrintXformPattern = 101011,

	/ print optimizer's stats
	EopttracePrintOptimizationStatistics = 101012,

	/ enable plan enumeration
	EopttraceEnumeratePlans = 101013,

	/ enable plan sampling
	EopttraceSamplePlans = 101014,

	/ print MEMO during property enforcement process
	EopttracePrintMemoEnforcement = 101015,

	/ print required columns
	EopttracePrintRequiredColumns = 101016,

	/ print equivalent distribution specs
	EopttracePrintEquivDistrSpecs = 101017,

	/
	/ transformations flags /
	/

	/ base for calculating flag ID to disable xform;
	/ use: flag = EopttraceDisableXformBase + xformID;
	EopttraceDisableXformBase = 102000,

	/ range from 102000 - 102999 is reserved for xform disable flags

	/
	/ engine flags /
	/

	/ first engine flag
	EopttraceFirstEngineFlag = 103000,	/ not currently used

	/ produce a minidump
	EopttraceMinidump = 103001,

	/ CTE inlining flags
	EopttraceEnableCTEInlining = 103002,

	/ Disable all Motion nodes
	EopttraceDisableMotions = 103003,

	/ Disable MotionBroadcast nodes
	EopttraceDisableMotionBroadcast = 103004,

	/ Disable MotionGather nodes
	EopttraceDisableMotionGather = 103005,

	/ Disable MotionHashDistribute nodes
	EopttraceDisableMotionHashDistribute = 103006,

	/ Disable MotionHashRandom nodes
	EopttraceDisableMotionRandom = 103007,

	/ Disable MotionHashRoutedDistribute nodes
	EopttraceDisableMotionRountedDistribute = 103008,

	/ Disable Sort nodes
	EopttraceDisableSort = 103009,

	/ Disable Spool nodes
	EopttraceDisableSpool = 103010,

	/ Disable partition propagation
	EopttraceDisablePartPropagation = 103011,

	/ Disable partition selection
	EopttraceDisablePartSelection = 103012,

	/ Disable outer-join To inner-join rewrite
	EopttraceDisableOuterJoin2InnerJoinRewrite = 103013,

	/ Enable plan space pruning
	EopttraceEnableSpacePruning = 103014,

	/ Always pick multi-stage aggregation whenever such a plan is generated
	EopttraceForceMultiStageAgg = 103015,

	/ Enable generating (Redistribute, Broadcast) alternative for hash join children
	EopttraceEnableRedistributeBroadcastHashJoin = 103016,

	/ Apply LeftOuter2InnerUnionAllLeftAntiSemiJoin without looking at stats
	EopttraceApplyLeftOuter2InnerUnionAllLeftAntiSemiJoinDisregardingStats =
		103017,

	/ Do not keep an order-by, even if it is right under a DML operator
	EopttraceRemoveOrderBelowDML = 103019,

	/ prevent plan alternatives where NLJ's outer child is replicated
	EopttraceDisableReplicateInnerNLJOuterChild = 103020,

	/ enforce evaluating subqueries using correlated joins (subplans in GPDB)
	EopttraceEnforceCorrelatedExecution = 103021,

	/ Always pick plans that expand multiple distinct qualified aggregates into join of single distinct aggregates
	EopttraceForceExpandedMDQAs = 103022,

	/ prevent optimizing CTE producer side based on requirements enforced on top of CTE consumer
	EopttraceDisablePushingCTEConsumerReqsToCTEProducer = 103023,

	/ prune unused computed columns
	EopttraceDisablePruneUnusedComputedColumns = 103024,

	/ enable parallel append
	EopttraceEnableParallelAppend = 103025,

	/ create constraint intervals from array expressions in preprocessing
	EopttraceArrayConstraints = 103026,

	/ enable motion hazard handling during NLJ optimization
	EopttraceMotionHazardHandling = 103027,

	/ non-master gather enforcement for DML queries
	EopttraceDisableNonMasterGatherForDML = 103028,

	/ Force the optimizer to pick a plan that minimizes skew but adds an extra motion node when aggs are used
	EopttraceForceAggSkewAvoidance = 103029,

	/ Eager Agg
	EopttraceEnableEagerAgg = 103030,

	/ Translate unused colrefs. specifically translate all colrefs, including ones
	/ that are not referenced in the query.
	EopttraceTranslateUnusedColrefs = 103031,

	/ ExpandFullJoin
	EopttraceExpandFullJoin = 103032,

	/ Expand LOJs in N-aryjoin
	EopttraceEnableLOJInNAryJoin = 103033,

	/ Generate only query join order in DPv2 transform
	EopttraceQueryOnlyInDPv2 = 103034,

	/ Generate only Greedy join order in DPv2 transform
	EopttraceGreedyOnlyInDPv2 = 103035,

	/ Generate only MinCard join order in DPv2 transform
	EopttraceMinCardOnlyInDPv2 = 103036,

	/ Consider non-equality predicates in Dynamic partition selection
	EopttraceAllowGeneralPredicatesforDPE = 103037,

	/ Support Opfamilies in distribution specs
	EopttraceConsiderOpfamiliesForDistribution = 103038,

	/ Use legacy (cdbhash) opfamilies for compatibility
	EopttraceUseLegacyOpfamilies = 103039,

	/ enable NL Left Join plan alternatives where inner child is redistributed if possible
	EopttraceEnableRedistributeNLLOJInnerChild = 103040,

	EopttraceForceComprehensiveJoinImplementation = 103041,

	/
	/ statistics flags /
	/

	/ extract statistics
	EopttraceExtractDXLStats = 104000,

	/ extract statistics for all physical DXL nodes
	EopttraceExtractDXLStatsAllNodes = 104001,

	/ derive new statistics for dynamic scans when partition elimination applies
	EopttraceDeriveStatsForDPE = 104002,

	/ print information about columns with missing statistics
	EopttracePrintColsWithMissingStats = 104003,

	/ do not trigger stats derivation for all groups after exploration
	EopttraceDonotDeriveStatsForAllGroups = 104004,

	/ Always pick plans that split scalar DQA into a plan with 3-stage aggregation
	EopttraceForceThreeStageScalarDQA = 104005,

	/ Penalize HashJoins with a skewed hash distribute under them
	EopttracePenalizeSkewedHashJoin = 104006,

	/ Use legacy cost model
	EopttraceLegacyCostModel = 104008,

	/ Use experimental cost model
	EopttraceExperimentalCostModel = 104009,
	/
	/ constant expression evaluator flags /
	/

	EopttraceEnableConstantExpressionEvaluation = 105000,

	/ do not use the built-in evaluators for integers in constraint derivation
	EopttraceUseExternalConstantExpressionEvaluationForInts = 105001,

	/ is nestloop params enabled, it is only enabled in GPDB 6.x onwards.
	EopttraceIndexedNLJOuterRefAsParams = 106000,

	/ max
	EopttraceSentinel = 199999
};
}

#ifdef __cplusplus
extern "C" {
#endif	/ __cplusplus

/ set trace flags based on given bit set, and return two output bit sets of old trace flags values
void SetTraceflags(gpos::CMemoryPool *mp, const gpos::CBitSet *input_bitset,
				   gpos::CBitSet **enable_bitset,
				   gpos::CBitSet **disabled_bitset);

/ restore trace flags values based on given bit sets
void ResetTraceflags(gpos::CBitSet *enable_bitset,
					 gpos::CBitSet *disabled_bitset);

#ifdef __cplusplus
}
#endif	/ __cplusplus

#endif	/ ! GPOPT_traceflags_H

/ EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn adminpack 源码

greenplumn verify_nbtree 源码

greenplumn auth_delay 源码

greenplumn auto_explain 源码

greenplumn blcost 源码

greenplumn blinsert 源码

greenplumn bloom 源码

greenplumn blscan 源码

greenplumn blutils 源码

greenplumn blvacuum 源码

^