Class SqlQueryColumnOptimizerVisitor
Two-pass visitor that removes unused columns from SelectQuery. Pass 1: Collects all column references (read-only behavior) Pass 2: Removes unused columns (modify)
public sealed class SqlQueryColumnOptimizerVisitor : QueryElementVisitor
- Inheritance
-
objectSqlQueryColumnOptimizerVisitor
- Inherited Members
- Extension Methods
Constructors
SqlQueryColumnOptimizerVisitor()
Two-pass visitor that removes unused columns from SelectQuery. Pass 1: Collects all column references (read-only behavior) Pass 2: Removes unused columns (modify)
public SqlQueryColumnOptimizerVisitor()
Methods
Cleanup()
Resets visitor to initial state.
public override void Cleanup()
OptimizeColumns(IQueryElement)
Optimizes column usage in two passes: Pass 1: Collect all column references (no modifications) Pass 2: Remove unused columns (modify)
public IQueryElement OptimizeColumns(IQueryElement root)
Parameters
rootIQueryElement
Returns
VisitCteClause(CteClause)
Visitor of CteClause definition from SqlWithClause visitor (owner). For visitor of CteClause in queries see VisitCteClauseReference(CteClause) visitor.
protected override IQueryElement VisitCteClause(CteClause element)
Parameters
elementCteClause
Returns
VisitExistsPredicate(Exists)
protected override IQueryElement VisitExistsPredicate(SqlPredicate.Exists predicate)
Parameters
predicateSqlPredicate.Exists
Returns
VisitSqlColumnExpression(SqlColumn, ISqlExpression)
Visit of column expression from owner table. For column references visitor see VisitSqlColumnReference(SqlColumn)
protected override ISqlExpression VisitSqlColumnExpression(SqlColumn column, ISqlExpression expression)
Parameters
columnSqlColumnexpressionISqlExpression
Returns
VisitSqlColumnReference(SqlColumn)
Used to visit columns as references in other expressions. Actual visit of table column happens in VisitSqlColumnExpression(SqlColumn, ISqlExpression).
protected override IQueryElement VisitSqlColumnReference(SqlColumn element)
Parameters
elementSqlColumn
Returns
VisitSqlFieldReference(SqlField)
Visitor for SqlField reference from query expressions.
protected override IQueryElement VisitSqlFieldReference(SqlField element)
Parameters
elementSqlField
Returns
VisitSqlFromClause(SqlFromClause)
protected override IQueryElement VisitSqlFromClause(SqlFromClause element)
Parameters
elementSqlFromClause
Returns
VisitSqlGroupByClause(SqlGroupByClause)
protected override IQueryElement VisitSqlGroupByClause(SqlGroupByClause element)
Parameters
elementSqlGroupByClause
Returns
VisitSqlInsertOrUpdateStatement(SqlInsertOrUpdateStatement)
protected override IQueryElement VisitSqlInsertOrUpdateStatement(SqlInsertOrUpdateStatement element)
Parameters
elementSqlInsertOrUpdateStatement
Returns
VisitSqlOrderByClause(SqlOrderByClause)
protected override IQueryElement VisitSqlOrderByClause(SqlOrderByClause element)
Parameters
elementSqlOrderByClause
Returns
VisitSqlQuery(SelectQuery)
protected override IQueryElement VisitSqlQuery(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
VisitSqlSearchCondition(SqlSearchCondition)
protected override IQueryElement VisitSqlSearchCondition(SqlSearchCondition element)
Parameters
elementSqlSearchCondition
Returns
VisitSqlTableLikeSource(SqlTableLikeSource)
protected override IQueryElement VisitSqlTableLikeSource(SqlTableLikeSource element)
Parameters
elementSqlTableLikeSource
Returns
VisitSqlUpdateStatement(SqlUpdateStatement)
protected override IQueryElement VisitSqlUpdateStatement(SqlUpdateStatement element)
Parameters
elementSqlUpdateStatement