Documentation ¶
Index ¶
- Constants
- Variables
- func DebugPlan(pl *plan.Plan) string
- func GetDeleteTableLabelValue(deleteCtx *plan.DeleteCtx) []string
- func GetExprsLabelValue(ctx context.Context, exprList []*plan.Expr, options *ExplainOptions) ([]string, error)
- func GetInputRowsAndInputSize(ctx context.Context, node *plan.Node, options *ExplainOptions) (rows int64, size int64)
- func GetOrderByLabelValue(ctx context.Context, orderbyList []*plan.OrderBySpec, options *ExplainOptions) ([]string, error)
- func GetStatistic4Trace(ctx context.Context, node *plan.Node, options *ExplainOptions) (s statistic.StatsArray)
- func GetTableColsLableValue(ctx context.Context, cols []*plan.ColDef, options *ExplainOptions) []string
- func PreOrderPlan(ctx context.Context, node *plan.Node, Nodes []*plan.Node, graphData *GraphData, ...) error
- type AnalyzeInfoDescribeImpl
- type CostDescribeImpl
- type Edge
- type ExplainData
- type ExplainDataBuffer
- type ExplainFormat
- type ExplainOptions
- type ExplainQuery
- type ExplainQueryImpl
- type ExprListDescribeImpl
- type FormatSettings
- type Global
- type GraphData
- type Label
- type MarshalNode
- type MarshalNodeImpl
- func (m MarshalNodeImpl) GetNodeLabels(ctx context.Context, options *ExplainOptions) ([]Label, error)
- func (m MarshalNodeImpl) GetNodeName(ctx context.Context) (string, error)
- func (m MarshalNodeImpl) GetNodeTitle(ctx context.Context, options *ExplainOptions) (string, error)
- func (m MarshalNodeImpl) GetStatistics(ctx context.Context, options *ExplainOptions) Statistics
- func (m MarshalNodeImpl) GetStats() Stats
- func (m MarshalNodeImpl) GetTotalStats() TotalStats
- type Node
- type NodeDescribe
- type NodeDescribeImpl
- func (ndesc *NodeDescribeImpl) GetActualAnalyzeInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetAggregationInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetBlockFilterConditionInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetExtraInfo(ctx context.Context, options *ExplainOptions) ([]string, error)
- func (ndesc *NodeDescribeImpl) GetFillColsInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetFillModeInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetFilterConditionInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetGroupByInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetJoinConditionInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetJoinTypeInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetNodeBasicInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetOrderByInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetPartitionPruneInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetProjectListInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetRecvMessageInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetRuntimeFilteProbeInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetRuntimeFilterBuildInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetSampleFuncInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetSendMessageInfo(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetTableDef(ctx context.Context, options *ExplainOptions) (string, error)
- func (ndesc *NodeDescribeImpl) GetWindowSpectListInfo(ctx context.Context, options *ExplainOptions) (string, error)
- type NodeElemDescribe
- type OrderByDescribeImpl
- type PlanStats
- type RowsetDataDescribeImpl
- type StatisticValue
- type Statistics
- type Stats
- type Step
- type TotalStats
- type WinSpecDescribeImpl
Constants ¶
View Source
const ( Label_Table_Name = "Full table name" Label_Table_Columns = "Columns" Label_Total_Columns = "Total columns" Label_Scan_Columns = "Scan columns" Label_List_Expression = "List of expressions" Label_Grouping_Keys = "Grouping keys" Label_Agg_Functions = "Aggregate functions" Label_Filter_Conditions = "Filter conditions" Label_Block_Filter_Conditions = "Block Filter conditions" Label_Join_Type = "Join type" Label_Join_Conditions = "Join conditions" Label_Left_NodeId = "Left node id" Label_Right_NodeId = "Right node id" Label_Sort_Keys = "Sort keys" Label_List_Values = "List of values" Label_Union_Expressions = "Union expressions" Label_Union_All_Expressions = "Union all expressions" Label_Intersect_Expressions = "Intersect expressions" Label_Intersect_All_Expressions = "Intersect all expressions" Label_Minus_Expressions = "Minus expressions" Label_Pre_Insert = "Pre insert" Label_Pre_InsertUk = "Pre insert uk" Label_Pre_InsertSk = "Pre insert sk" Label_Pre_Delete = "Pre delete" Label_Sink = "Sink" Label_Sink_Scan = "Sink scan" Label_Recursive_SCAN = "Recursive scan" Label_Recursive_CTE = "CTE scan" Label_Lock_Op = "Lock op" Label_Row_Number = "Number of rows" Label_Offset = "Offset" Label_Time_Window = "Time window" Label_Partition = "Partition" Label_Fill = "Fill" Label_Boardcast = "Boardcast" Label_Split = "Split" Label_Gather = "Gather" Label_Assert = "Assert" Label_On_Duplicate_Key = "On duplicate key" Label_Fuzzy_Filter = "Fuzzy filter" Label_External_Function = "External Function" Label_Distinct = "Distinct" Label_Sample = "Sample" Label_Window = "Window" Label_Minus_All = "Minus All" Label_Unique = "Unique" Label_Replace = "Replace" Label_Unknown = "Unknown" Label_Meterial = "Meterial" )
View Source
const ( Statistic_Unit_ns = "ns" Statistic_Unit_count = "count" Statistic_Unit_byte = "byte" )
View Source
const DiskIO = "Disk IO"
View Source
const ExternalScan = "External Scan"
View Source
const GB = MB * 1024
View Source
const InputRows = "Input Rows"
View Source
const InputSize = "Input Size"
View Source
const InsertTime = "Insert Time"
View Source
const MB = 1024 * 1024
View Source
const MILLION = 1000000
View Source
const MemorySize = "Memory Size"
View Source
const Network = "Network"
View Source
const OutputRows = "Output Rows"
View Source
const OutputSize = "Output Size"
View Source
const S3IOByte = "S3 IO Byte"
View Source
const S3IOInputCount = "S3 IO Input Count"
View Source
const S3IOOutputCount = "S3 IO Output Count"
View Source
const ScanTime = "Scan Time"
View Source
const TableScan = "Table Scan"
View Source
const TimeConsumed = "Time Consumed"
View Source
const WaitTime = "Wait Time"
Variables ¶
View Source
var MarshalPlanOptions = ExplainOptions{ Verbose: true, Analyze: true, Format: EXPLAIN_FORMAT_TEXT, }
The global variable is used to serialize plan and avoid objects being repeatedly created
Functions ¶
func GetDeleteTableLabelValue ¶ added in v0.8.0
func GetExprsLabelValue ¶ added in v0.6.0
func GetInputRowsAndInputSize ¶ added in v1.0.0
func GetInputRowsAndInputSize(ctx context.Context, node *plan.Node, options *ExplainOptions) (rows int64, size int64)
GetInputRowsAndInputSize return plan.Node AnalyzeInfo InputRows and InputSize. migrate ExplainData.StatisticsRead to here
func GetOrderByLabelValue ¶ added in v0.8.0
func GetOrderByLabelValue(ctx context.Context, orderbyList []*plan.OrderBySpec, options *ExplainOptions) ([]string, error)
func GetStatistic4Trace ¶ added in v1.0.0
func GetStatistic4Trace(ctx context.Context, node *plan.Node, options *ExplainOptions) (s statistic.StatsArray)
func GetTableColsLableValue ¶ added in v0.6.0
Types ¶
type AnalyzeInfoDescribeImpl ¶ added in v0.6.0
type AnalyzeInfoDescribeImpl struct {
AnalyzeInfo *plan.AnalyzeInfo
}
func NewAnalyzeInfoDescribeImpl ¶ added in v0.6.0
func NewAnalyzeInfoDescribeImpl(analyze *plan.AnalyzeInfo) *AnalyzeInfoDescribeImpl
func (AnalyzeInfoDescribeImpl) GetDescription ¶ added in v0.6.0
func (a AnalyzeInfoDescribeImpl) GetDescription(ctx context.Context, options *ExplainOptions, buf *bytes.Buffer) error
type CostDescribeImpl ¶
func (*CostDescribeImpl) GetDescription ¶
func (c *CostDescribeImpl) GetDescription(ctx context.Context, options *ExplainOptions, buf *bytes.Buffer) error
type ExplainData ¶ added in v0.6.0
type ExplainData struct { Steps []Step `json:"steps"` Code uint16 `json:"code"` Message string `json:"message"` Uuid string `json:"uuid"` NewPlanStats statistic.StatsInfo }
func BuildJsonPlan ¶ added in v0.8.0
func BuildJsonPlan(ctx context.Context, uuid uuid.UUID, options *ExplainOptions, query *plan.Query) *ExplainData
func NewExplainData ¶ added in v0.6.0
func NewExplainData(uuid uuid.UUID) *ExplainData
func NewExplainDataFail ¶ added in v0.6.0
func NewExplainDataFail(uuid uuid.UUID, code uint16, msg string) *ExplainData
func (*ExplainData) StatisticsRead
deprecated
added in
v0.6.0
func (d *ExplainData) StatisticsRead() (rows int64, size int64)
StatisticsRead statistics read rows, size in ExplainData
Deprecated: please use explain.GetInputRowsAndInputSize instead.
type ExplainDataBuffer ¶
func NewExplainDataBuffer ¶
func NewExplainDataBuffer() *ExplainDataBuffer
func (*ExplainDataBuffer) AppendCurrentLine ¶
func (buf *ExplainDataBuffer) AppendCurrentLine(temp string)
func (*ExplainDataBuffer) PushNewLine ¶
func (buf *ExplainDataBuffer) PushNewLine(line string, isNewNode bool, level int)
func (*ExplainDataBuffer) PushPlanTitle ¶ added in v0.8.0
func (buf *ExplainDataBuffer) PushPlanTitle(title string)
func (*ExplainDataBuffer) ToString ¶ added in v1.0.0
func (buf *ExplainDataBuffer) ToString() string
type ExplainFormat ¶
type ExplainFormat int32
const ( EXPLAIN_FORMAT_TEXT ExplainFormat = 0 EXPLAIN_FORMAT_XML ExplainFormat = 1 EXPLAIN_FORMAT_JSON ExplainFormat = 2 EXPLAIN_FORMAT_DOT ExplainFormat = 3 )
type ExplainOptions ¶
type ExplainOptions struct { Verbose bool Analyze bool Format ExplainFormat NodeType plan.Node_NodeType }
func NewExplainDefaultOptions ¶
func NewExplainDefaultOptions() *ExplainOptions
type ExplainQuery ¶
type ExplainQuery interface {
ExplainPlan(ctx context.Context, buffer *ExplainDataBuffer, options *ExplainOptions) error
}
type ExplainQueryImpl ¶
func NewExplainQueryImpl ¶
func NewExplainQueryImpl(query *plan.Query) *ExplainQueryImpl
func (*ExplainQueryImpl) ExplainPlan ¶
func (e *ExplainQueryImpl) ExplainPlan(ctx context.Context, buffer *ExplainDataBuffer, options *ExplainOptions) error
type ExprListDescribeImpl ¶
type ExprListDescribeImpl struct {
ExprList []*plan.Expr // ProjectList,OnList,FilterList,GroupBy,GroupingSet and so on
}
func NewExprListDescribeImpl ¶
func NewExprListDescribeImpl(ExprList []*plan.Expr) *ExprListDescribeImpl
func (*ExprListDescribeImpl) GetDescription ¶
func (e *ExprListDescribeImpl) GetDescription(ctx context.Context, options *ExplainOptions, buf *bytes.Buffer) error
type FormatSettings ¶
type FormatSettings struct {
// contains filtered or unexported fields
}
type Global ¶ added in v0.6.0
type Global struct { Statistics Statistics `json:"statistics"` TotalStats TotalStats `json:"totalStats"` }
type GraphData ¶ added in v0.6.0
type GraphData struct { Nodes []Node `json:"nodes"` Edges []Edge `json:"edges"` Labels []Label `json:"labels"` Global Global `json:"global"` }
func NewGraphData ¶ added in v0.6.0
type Label ¶ added in v0.6.0
type Label struct { Name string `json:"name"` Value interface{} `json:"value"` }
type MarshalNode ¶ added in v0.6.0
type MarshalNode interface { GetNodeName(ctx context.Context) (string, error) GetNodeTitle(ctx context.Context, options *ExplainOptions) (string, error) GetNodeLabels(ctx context.Context, options *ExplainOptions) ([]Label, error) GetStatistics(ctx context.Context, options *ExplainOptions) Statistics GetStats() Stats GetTotalStats() TotalStats }
type MarshalNodeImpl ¶ added in v0.6.0
type MarshalNodeImpl struct {
// contains filtered or unexported fields
}
func NewMarshalNodeImpl ¶ added in v0.6.0
func NewMarshalNodeImpl(node *plan.Node) *MarshalNodeImpl
func (MarshalNodeImpl) GetNodeLabels ¶ added in v0.6.0
func (m MarshalNodeImpl) GetNodeLabels(ctx context.Context, options *ExplainOptions) ([]Label, error)
func (MarshalNodeImpl) GetNodeName ¶ added in v0.6.0
func (m MarshalNodeImpl) GetNodeName(ctx context.Context) (string, error)
func (MarshalNodeImpl) GetNodeTitle ¶ added in v0.6.0
func (m MarshalNodeImpl) GetNodeTitle(ctx context.Context, options *ExplainOptions) (string, error)
func (MarshalNodeImpl) GetStatistics ¶ added in v0.6.0
func (m MarshalNodeImpl) GetStatistics(ctx context.Context, options *ExplainOptions) Statistics
func (MarshalNodeImpl) GetStats ¶ added in v0.7.0
func (m MarshalNodeImpl) GetStats() Stats
func (MarshalNodeImpl) GetTotalStats ¶ added in v0.6.0
func (m MarshalNodeImpl) GetTotalStats() TotalStats
type Node ¶ added in v0.6.0
type Node struct { NodeId string `json:"id"` Name string `json:"name"` Title string `json:"title"` Labels []Label `json:"labels"` Statistics Statistics `json:"statistics"` Stats Stats `json:"stats"` TotalStats TotalStats `json:"totalStats"` }
func ConvertNode ¶ added in v0.6.0
type NodeDescribe ¶
type NodeDescribe interface { GetNodeBasicInfo(ctx context.Context, options *ExplainOptions) (string, error) GetExtraInfo(ctx context.Context, options *ExplainOptions) ([]string, error) GetProjectListInfo(ctx context.Context, options *ExplainOptions) (string, error) GetJoinTypeInfo(ctx context.Context, options *ExplainOptions) (string, error) GetJoinConditionInfo(ctx context.Context, options *ExplainOptions) (string, error) GetFilterConditionInfo(ctx context.Context, options *ExplainOptions) (string, error) GetOrderByInfo(ctx context.Context, options *ExplainOptions) (string, error) GetGroupByInfo(ctx context.Context, options *ExplainOptions) (string, error) GetTableDef(ctx context.Context, options *ExplainOptions) (string, error) GetActualAnalyzeInfo(ctx context.Context, options *ExplainOptions) (string, error) }
type NodeDescribeImpl ¶
func NewNodeDescriptionImpl ¶
func NewNodeDescriptionImpl(node *plan.Node) *NodeDescribeImpl
func (*NodeDescribeImpl) GetActualAnalyzeInfo ¶ added in v0.6.0
func (ndesc *NodeDescribeImpl) GetActualAnalyzeInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetAggregationInfo ¶
func (ndesc *NodeDescribeImpl) GetAggregationInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetBlockFilterConditionInfo ¶ added in v0.8.0
func (ndesc *NodeDescribeImpl) GetBlockFilterConditionInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetExtraInfo ¶
func (ndesc *NodeDescribeImpl) GetExtraInfo(ctx context.Context, options *ExplainOptions) ([]string, error)
func (*NodeDescribeImpl) GetFillColsInfo ¶ added in v1.1.0
func (ndesc *NodeDescribeImpl) GetFillColsInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetFillModeInfo ¶ added in v1.1.0
func (ndesc *NodeDescribeImpl) GetFillModeInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetFilterConditionInfo ¶
func (ndesc *NodeDescribeImpl) GetFilterConditionInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetGroupByInfo ¶
func (ndesc *NodeDescribeImpl) GetGroupByInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetJoinConditionInfo ¶
func (ndesc *NodeDescribeImpl) GetJoinConditionInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetJoinTypeInfo ¶
func (ndesc *NodeDescribeImpl) GetJoinTypeInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetNodeBasicInfo ¶
func (ndesc *NodeDescribeImpl) GetNodeBasicInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetOrderByInfo ¶
func (ndesc *NodeDescribeImpl) GetOrderByInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetPartitionPruneInfo ¶ added in v1.0.0
func (ndesc *NodeDescribeImpl) GetPartitionPruneInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetProjectListInfo ¶
func (ndesc *NodeDescribeImpl) GetProjectListInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetRecvMessageInfo ¶ added in v1.2.0
func (ndesc *NodeDescribeImpl) GetRecvMessageInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetRuntimeFilteProbeInfo ¶ added in v0.8.0
func (ndesc *NodeDescribeImpl) GetRuntimeFilteProbeInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetRuntimeFilterBuildInfo ¶ added in v0.8.0
func (ndesc *NodeDescribeImpl) GetRuntimeFilterBuildInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetSampleFuncInfo ¶ added in v1.1.0
func (ndesc *NodeDescribeImpl) GetSampleFuncInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetSendMessageInfo ¶ added in v1.2.0
func (ndesc *NodeDescribeImpl) GetSendMessageInfo(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetTableDef ¶
func (ndesc *NodeDescribeImpl) GetTableDef(ctx context.Context, options *ExplainOptions) (string, error)
func (*NodeDescribeImpl) GetWindowSpectListInfo ¶ added in v0.8.0
func (ndesc *NodeDescribeImpl) GetWindowSpectListInfo(ctx context.Context, options *ExplainOptions) (string, error)
type NodeElemDescribe ¶
type OrderByDescribeImpl ¶
type OrderByDescribeImpl struct {
OrderBy []*plan.OrderBySpec
}
func NewOrderByDescribeImpl ¶
func NewOrderByDescribeImpl(OrderBy []*plan.OrderBySpec) *OrderByDescribeImpl
func (*OrderByDescribeImpl) GetDescription ¶
func (o *OrderByDescribeImpl) GetDescription(ctx context.Context, options *ExplainOptions, buf *bytes.Buffer) error
type RowsetDataDescribeImpl ¶
type RowsetDataDescribeImpl struct {
RowsetData *plan.RowsetData
}
func (*RowsetDataDescribeImpl) GetDescription ¶
func (r *RowsetDataDescribeImpl) GetDescription(ctx context.Context, options *ExplainOptions, buf *bytes.Buffer) error
type StatisticValue ¶ added in v0.6.0
type StatisticValue struct { Name string `json:"name"` Value int64 `json:"value"` Unit string `json:"unit"` }
func NewStatisticValue ¶ added in v0.7.0
func NewStatisticValue(name string, unit string) *StatisticValue
type Statistics ¶ added in v0.6.0
type Statistics struct { Time []StatisticValue `json:"Time"` Memory []StatisticValue `json:"Memory"` Throughput []StatisticValue `json:"Throughput"` IO []StatisticValue `json:"IO"` Network []StatisticValue `json:"Network"` }
func NewStatistics ¶ added in v0.6.0
func NewStatistics() *Statistics
type Step ¶ added in v0.6.0
type TotalStats ¶ added in v0.6.0
type WinSpecDescribeImpl ¶
type WinSpecDescribeImpl struct {
WinSpec *plan.WindowSpec
}
func (*WinSpecDescribeImpl) GetDescription ¶
func (w *WinSpecDescribeImpl) GetDescription(ctx context.Context, options *ExplainOptions, buf *bytes.Buffer) error
Click to show internal directories.
Click to hide internal directories.