analyzer

package
v0.0.0-...-ae0b575 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnalysisJob

type AnalysisJob struct {
	ID    string
	Query string
	Stmt  parser.Statement
}

AnalysisJob represents a single analysis job

type AnalysisResult

type AnalysisResult struct {
	ID       string
	Analysis QueryAnalysis
	Error    error
}

AnalysisResult represents the result of an analysis job

type Analyzer

type Analyzer struct {
	// contains filtered or unexported fields
}

func New

func New() *Analyzer

func NewWithDialect

func NewWithDialect(d dialect.Dialect) *Analyzer

func (*Analyzer) Analyze

func (a *Analyzer) Analyze(stmt parser.Statement) QueryAnalysis

func (*Analyzer) AnalyzeWithCache

func (a *Analyzer) AnalyzeWithCache(stmt parser.Statement, cacheKey string) QueryAnalysis

func (*Analyzer) GetEnhancedOptimizations

func (a *Analyzer) GetEnhancedOptimizations(stmt parser.Statement) []EnhancedOptimizationSuggestion

GetEnhancedOptimizations returns comprehensive optimization suggestions using the new engine.

func (*Analyzer) SetOptimizationEngine

func (a *Analyzer) SetOptimizationEngine(engine *OptimizationEngine)

SetOptimizationEngine allows setting a custom optimization engine

func (*Analyzer) SuggestOptimizations

func (a *Analyzer) SuggestOptimizations(stmt *parser.SelectStatement) []OptimizationSuggestion

SuggestOptimizations provides optimization suggestions for a query

type ColumnInfo

type ColumnInfo struct {
	Table string `json:"table,omitempty"`
	Name  string `json:"name"`
	Usage string `json:"usage"` // SELECT, WHERE, JOIN, ORDER_BY, GROUP_BY
}

type ConcurrentAnalyzer

type ConcurrentAnalyzer struct {
	// contains filtered or unexported fields
}

ConcurrentAnalyzer performs analysis of multiple queries concurrently

func NewConcurrentAnalyzer

func NewConcurrentAnalyzer(workerCount int) *ConcurrentAnalyzer

NewConcurrentAnalyzer creates a new concurrent analyzer

func (*ConcurrentAnalyzer) AnalyzeConcurrently

func (ca *ConcurrentAnalyzer) AnalyzeConcurrently(ctx context.Context, jobs []AnalysisJob) []AnalysisResult

AnalyzeConcurrently analyzes multiple queries concurrently.

func (*ConcurrentAnalyzer) ClearCache

func (ca *ConcurrentAnalyzer) ClearCache()

ClearCache clears the analysis cache

func (*ConcurrentAnalyzer) GetCacheStats

func (ca *ConcurrentAnalyzer) GetCacheStats() map[string]interface{}

GetCacheStats returns cache statistics

type ConditionInfo

type ConditionInfo struct {
	Column   string `json:"column"`
	Operator string `json:"operator"`
	Value    string `json:"value"`
	Table    string `json:"table,omitempty"`
}

type EnhancedOptimizationSuggestion

type EnhancedOptimizationSuggestion struct {
	Type          string `json:"type"`
	Description   string `json:"description"`
	Severity      string `json:"severity"`
	Category      string `json:"category"`
	Rule          string `json:"rule"`
	Line          int    `json:"line,omitempty"`
	Column        int    `json:"column,omitempty"`
	Table         string `json:"table,omitempty"`
	ColumnName    string `json:"column_name,omitempty"`
	Suggestion    string `json:"suggestion"`
	Impact        string `json:"impact"` // HIGH, MEDIUM, LOW
	Dialect       string `json:"dialect,omitempty"`
	AutoFixable   bool   `json:"auto_fixable"`
	FixSuggestion string `json:"fix_suggestion,omitempty"`
}

EnhancedOptimizationSuggestion extends the basic suggestion with more details

type JoinInfo

type JoinInfo struct {
	Type       string `json:"type"`
	LeftTable  string `json:"left_table"`
	RightTable string `json:"right_table"`
	Condition  string `json:"condition"`
}

type OptimizationEngine

type OptimizationEngine struct {
	// contains filtered or unexported fields
}

OptimizationEngine provides comprehensive SQL optimization suggestions

func NewOptimizationEngine

func NewOptimizationEngine(d dialect.Dialect) *OptimizationEngine

NewOptimizationEngine creates a new optimization engine for a specific dialect

func (*OptimizationEngine) AnalyzeOptimizations

func (oe *OptimizationEngine) AnalyzeOptimizations(stmt parser.Statement) []EnhancedOptimizationSuggestion

AnalyzeOptimizations performs comprehensive optimization analysis

type OptimizationRule

type OptimizationRule struct {
	ID          string
	Name        string
	Description string
	Category    string // PERFORMANCE, SECURITY, MAINTAINABILITY, BEST_PRACTICE
	Severity    string // INFO, WARNING, ERROR, CRITICAL
	Enabled     bool
	CheckFunc   func(*OptimizationEngine, parser.Statement) []EnhancedOptimizationSuggestion
}

OptimizationRule defines a rule for optimization analysis

type OptimizationSuggestion

type OptimizationSuggestion struct {
	Type        string `json:"type"`
	Description string `json:"description"`
	Severity    string `json:"severity"`
	Line        int    `json:"line,omitempty"`
}

type PerformanceMetrics

type PerformanceMetrics struct {
	EstimatedRows        int64    `json:"estimated_rows"`
	EstimatedCost        float64  `json:"estimated_cost"`
	JoinComplexity       int      `json:"join_complexity"`
	IndexRecommendations []string `json:"index_recommendations"`
	RiskLevel            string   `json:"risk_level"` // LOW, MEDIUM, HIGH
}

type QueryAnalysis

type QueryAnalysis struct {
	Tables     []TableInfo     `json:"tables"`
	Columns    []ColumnInfo    `json:"columns"`
	Joins      []JoinInfo      `json:"joins"`
	Conditions []ConditionInfo `json:"conditions"`
	QueryType  string          `json:"query_type"`
	Complexity int             `json:"complexity"`
	// Performance metrics
	Performance *PerformanceMetrics `json:"performance,omitempty"`
	// Enhanced optimization suggestions
	EnhancedSuggestions []EnhancedOptimizationSuggestion `json:"enhanced_suggestions,omitempty"`
	// Legacy suggestions for backward compatibility
	Suggestions []OptimizationSuggestion `json:"suggestions,omitempty"`
}

type TableInfo

type TableInfo struct {
	Schema string `json:"schema,omitempty"`
	Name   string `json:"name"`
	Alias  string `json:"alias,omitempty"`
	Usage  string `json:"usage"` // SELECT, UPDATE, DELETE, INSERT
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL