Table of Contents

Class SelectQueryOptimizerVisitor

Namespace
LinqToDB.Internal.SqlQuery.Visitors
Assembly
linq2db.dll
public sealed class SelectQueryOptimizerVisitor : SqlQueryVisitor
Inheritance
SelectQueryOptimizerVisitor
Inherited Members
Extension Methods

Constructors

SelectQueryOptimizerVisitor()

public SelectQueryOptimizerVisitor()

Methods

Cleanup()

Resets visitor to initial state.

public override void Cleanup()

NotifyReplaced(IQueryElement, IQueryElement)

Remembers element replacement.

public override IQueryElement NotifyReplaced(IQueryElement newElement, IQueryElement oldElement)

Parameters

newElement IQueryElement
oldElement IQueryElement

Returns

IQueryElement

Optimize(IQueryElement, IQueryElement, SqlProviderFlags, bool, DataOptions, MappingSchema, EvaluationContext, params IQueryElement[])

public IQueryElement Optimize(IQueryElement root, IQueryElement rootElement, SqlProviderFlags providerFlags, bool removeWeakJoins, DataOptions dataOptions, MappingSchema mappingSchema, EvaluationContext evaluationContext, params IQueryElement[] dependencies)

Parameters

root IQueryElement
rootElement IQueryElement
providerFlags SqlProviderFlags
removeWeakJoins bool
dataOptions DataOptions
mappingSchema MappingSchema
evaluationContext EvaluationContext
dependencies IQueryElement[]

Returns

IQueryElement

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

element CteClause

Returns

IQueryElement

VisitExistsPredicate(Exists)

protected override IQueryElement VisitExistsPredicate(SqlPredicate.Exists predicate)

Parameters

predicate SqlPredicate.Exists

Returns

IQueryElement

VisitInSubQueryPredicate(InSubQuery)

protected override IQueryElement VisitInSubQueryPredicate(SqlPredicate.InSubQuery predicate)

Parameters

predicate SqlPredicate.InSubQuery

Returns

IQueryElement

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

column SqlColumn
expression ISqlExpression

Returns

ISqlExpression

VisitSqlFromClause(SqlFromClause)

protected override IQueryElement VisitSqlFromClause(SqlFromClause element)

Parameters

element SqlFromClause

Returns

IQueryElement

VisitSqlJoinedTable(SqlJoinedTable)

protected override IQueryElement VisitSqlJoinedTable(SqlJoinedTable element)

Parameters

element SqlJoinedTable

Returns

IQueryElement

VisitSqlNullabilityExpression(SqlNullabilityExpression)

protected override IQueryElement VisitSqlNullabilityExpression(SqlNullabilityExpression element)

Parameters

element SqlNullabilityExpression

Returns

IQueryElement

VisitSqlOrderByClause(SqlOrderByClause)

protected override IQueryElement VisitSqlOrderByClause(SqlOrderByClause element)

Parameters

element SqlOrderByClause

Returns

IQueryElement

VisitSqlQuery(SelectQuery)

protected override IQueryElement VisitSqlQuery(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

Returns

IQueryElement

VisitSqlSetOperator(SqlSetOperator)

protected override IQueryElement VisitSqlSetOperator(SqlSetOperator element)

Parameters

element SqlSetOperator

Returns

IQueryElement

VisitSqlTableSource(SqlTableSource)

protected override IQueryElement VisitSqlTableSource(SqlTableSource element)

Parameters

element SqlTableSource

Returns

IQueryElement

VisitSqlUpdateStatement(SqlUpdateStatement)

protected override IQueryElement VisitSqlUpdateStatement(SqlUpdateStatement element)

Parameters

element SqlUpdateStatement

Returns

IQueryElement