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) 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) GetRuntimeFilteProbeInfo(ctx context.Context, options *ExplainOptions) (string, error)
 - func (ndesc *NodeDescribeImpl) GetRuntimeFilterBuildInfo(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_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_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" )
      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 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
}
    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) 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) 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) 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.