Documentation ¶
Index ¶
- Constants
- Variables
- func Compress(input []byte) string
- func DecodeBinaryPlan(binaryPlan string) (string, error)
- func DecodeNormalizedPlan(planString string) (string, error)
- func DecodePlan(planString string) (res string, err error)
- func EncodePlanNode(depth int, pid, planType string, rowCount float64, ...)
- func EncodeTaskType(isRoot bool, storeType kv.StoreType) string
- func EncodeTaskTypeForNormalize(isRoot bool, storeType kv.StoreType) string
- func NormalizePlanNode(depth int, planType string, taskTypeInfo string, explainInfo string, ...)
- func PhysicalIDToTypeString(id int) string
- func TypeStringToPhysicalID(tp string) int
Constants ¶
const ( // TypeSel is the type of Selection. TypeSel = "Selection" // TypeSet is the type of Set. TypeSet = "Set" // TypeProj is the type of Projection. TypeProj = "Projection" // TypeAgg is the type of Aggregation. TypeAgg = "Aggregation" // TypeStreamAgg is the type of StreamAgg. TypeStreamAgg = "StreamAgg" // TypeHashAgg is the type of HashAgg. TypeHashAgg = "HashAgg" // TypeShow is the type of show. TypeShow = "Show" // TypeJoin is the type of Join. TypeJoin = "Join" // TypeUnion is the type of Union. TypeUnion = "Union" // TypePartitionUnion is the type of PartitionUnion TypePartitionUnion = "PartitionUnion" // TypeTableScan is the type of TableScan. TypeTableScan = "TableScan" // TypeMemTableScan is the type of TableScan. TypeMemTableScan = "MemTableScan" // TypeUnionScan is the type of UnionScan. TypeUnionScan = "UnionScan" // TypeIdxScan is the type of IndexScan. TypeIdxScan = "IndexScan" // TypeSort is the type of Sort. TypeSort = "Sort" // TypeTopN is the type of TopN. TypeTopN = "TopN" // TypeLimit is the type of Limit. TypeLimit = "Limit" // TypeHashJoin is the type of hash join. TypeHashJoin = "HashJoin" // TypeExchangeSender is the type of mpp exchanger sender. TypeExchangeSender = "ExchangeSender" // TypeExchangeReceiver is the type of mpp exchanger receiver. TypeExchangeReceiver = "ExchangeReceiver" // TypeExpand is the type of mpp expand source operator. TypeExpand = "Expand" // TypeMergeJoin is the type of merge join. TypeMergeJoin = "MergeJoin" // TypeIndexJoin is the type of index look up join. TypeIndexJoin = "IndexJoin" // TypeIndexMergeJoin is the type of index look up merge join. TypeIndexMergeJoin = "IndexMergeJoin" // TypeIndexHashJoin is the type of index nested loop hash join. TypeIndexHashJoin = "IndexHashJoin" // TypeApply is the type of Apply. TypeApply = "Apply" // TypeMaxOneRow is the type of MaxOneRow. TypeMaxOneRow = "MaxOneRow" // TypeExists is the type of Exists. TypeExists = "Exists" // TypeDual is the type of TableDual. TypeDual = "TableDual" // TypeLock is the type of SelectLock. TypeLock = "SelectLock" // TypeInsert is the type of Insert TypeInsert = "Insert" // TypeUpdate is the type of Update. TypeUpdate = "Update" // TypeDelete is the type of Delete. TypeDelete = "Delete" // TypeIndexLookUp is the type of IndexLookUp. TypeIndexLookUp = "IndexLookUp" // TypeTableReader is the type of TableReader. TypeTableReader = "TableReader" // TypeIndexReader is the type of IndexReader. TypeIndexReader = "IndexReader" // TypeWindow is the type of Window. TypeWindow = "Window" // TypeShuffle is the type of Shuffle. TypeShuffle = "Shuffle" // TypeShuffleReceiver is the type of Shuffle. TypeShuffleReceiver = "ShuffleReceiver" // TypeTiKVSingleGather is the type of TiKVSingleGather. TypeTiKVSingleGather = "TiKVSingleGather" // TypeIndexMerge is the type of IndexMergeReader TypeIndexMerge = "IndexMerge" // TypePointGet is the type of PointGetPlan. TypePointGet = "Point_Get" // TypeShowDDLJobs is the type of show ddl jobs. TypeShowDDLJobs = "ShowDDLJobs" // TypeBatchPointGet is the type of BatchPointGetPlan. TypeBatchPointGet = "Batch_Point_Get" // TypeClusterMemTableReader is the type of TableReader. TypeClusterMemTableReader = "ClusterMemTableReader" // TypeDataSource is the type of DataSource. TypeDataSource = "DataSource" // TypeLoadData is the type of LoadData. TypeLoadData = "LoadData" // TypeTableSample is the type of TableSample. TypeTableSample = "TableSample" // TypeTableFullScan is the type of TableFullScan. TypeTableFullScan = "TableFullScan" // TypeTableRangeScan is the type of TableRangeScan. TypeTableRangeScan = "TableRangeScan" // TypeTableRowIDScan is the type of TableRowIDScan. TypeTableRowIDScan = "TableRowIDScan" // TypeIndexFullScan is the type of IndexFullScan. TypeIndexFullScan = "IndexFullScan" // TypeIndexRangeScan is the type of IndexRangeScan. TypeIndexRangeScan = "IndexRangeScan" // TypeCTETable is the type of TypeCTETable. TypeCTETable = "CTETable" // TypeCTE is the type of CTEFullScan. TypeCTE = "CTEFullScan" // TypeCTEDefinition is the type of CTE definition TypeCTEDefinition = "CTE" // TypeForeignKeyCheck is the type of FKCheck TypeForeignKeyCheck = "Foreign_Key_Check" // TypeForeignKeyCascade is the type of FKCascade TypeForeignKeyCascade = "Foreign_Key_Cascade" // TypeImportInto is the type of ImportInto. TypeImportInto = "ImportInto" // TypeSequence is the type of Sequence TypeSequence = "Sequence" // TypeScalarSubQuery is the type of ScalarQuery TypeScalarSubQuery = "ScalarSubQuery" )
const (
TypeScalarSubQueryID int = 60
)
plan id. Attention: for compatibility of encode/decode plan, The plan id shouldn't be changed.
Variables ¶
var ( // PlanDiscardedEncoded indicates the discard plan because it is too long PlanDiscardedEncoded = "[discard]" // BinaryPlanDiscardedEncoded is a special binary plan that represents it's discarded because of too long. BinaryPlanDiscardedEncoded = func() string { binary := &tipb.ExplainData{DiscardedDueToTooLong: true} proto, err := binary.Marshal() if err != nil { return "" } return Compress(proto) }() )
Functions ¶
func DecodeBinaryPlan ¶
DecodeBinaryPlan decode the binary plan and display it similar to EXPLAIN ANALYZE statement.
func DecodeNormalizedPlan ¶
DecodeNormalizedPlan decodes the string to plan tree.
func DecodePlan ¶
DecodePlan use to decode the string to plan tree.
func EncodePlanNode ¶
func EncodePlanNode(depth int, pid, planType string, rowCount float64, taskTypeInfo, explainInfo, actRows, analyzeInfo, memoryInfo, diskInfo string, buf *bytes.Buffer)
EncodePlanNode is used to encode the plan to a string.
func EncodeTaskType ¶
EncodeTaskType is used to encode task type to a string.
func EncodeTaskTypeForNormalize ¶
EncodeTaskTypeForNormalize is used to encode task type to a string. Only use for normalize plan.
func NormalizePlanNode ¶
func NormalizePlanNode(depth int, planType string, taskTypeInfo string, explainInfo string, buf *bytes.Buffer)
NormalizePlanNode is used to normalize the plan to a string.
func PhysicalIDToTypeString ¶
PhysicalIDToTypeString converts the plan id to plan type string.
func TypeStringToPhysicalID ¶
TypeStringToPhysicalID converts the plan type string to plan id.
Types ¶
This section is empty.