Table of Contents

Class SqlExpressionOptimizerVisitor

Namespace
LinqToDB.Internal.SqlProvider
Assembly
linq2db.dll
public class SqlExpressionOptimizerVisitor : SqlQueryVisitor
Inheritance
SqlExpressionOptimizerVisitor
Inherited Members
Extension Methods

Constructors

SqlExpressionOptimizerVisitor(bool)

public SqlExpressionOptimizerVisitor(bool allowModify)

Parameters

allowModify bool

Properties

DataOptions

protected DataOptions DataOptions { get; }

Property Value

DataOptions

EvaluationContext

protected EvaluationContext EvaluationContext { get; }

Property Value

EvaluationContext

MappingSchema

protected MappingSchema MappingSchema { get; }

Property Value

MappingSchema

Methods

CanBeEvaluateNoParameters(IQueryElement)

protected bool CanBeEvaluateNoParameters(IQueryElement expr)

Parameters

expr IQueryElement

Returns

bool

Cleanup()

Resets visitor to initial state.

public override void Cleanup()

Optimize(EvaluationContext, NullabilityContext, IVisitorTransformationInfo?, DataOptions, MappingSchema, IQueryElement, bool, bool)

public virtual IQueryElement Optimize(EvaluationContext evaluationContext, NullabilityContext nullabilityContext, SqlQueryVisitor.IVisitorTransformationInfo? transformationInfo, DataOptions dataOptions, MappingSchema mappingSchema, IQueryElement element, bool visitQueries, bool reducePredicates)

Parameters

evaluationContext EvaluationContext
nullabilityContext NullabilityContext
transformationInfo SqlQueryVisitor.IVisitorTransformationInfo
dataOptions DataOptions
mappingSchema MappingSchema
element IQueryElement
visitQueries bool
reducePredicates bool

Returns

IQueryElement

OptimizeFunction(SqlFunction)

protected virtual IQueryElement OptimizeFunction(SqlFunction function)

Parameters

function SqlFunction

Returns

IQueryElement

OptimizeSimilarForSearch(ISqlPredicate, SqlSearchCondition, out ISqlPredicate, out ISqlPredicate?)

public bool OptimizeSimilarForSearch(ISqlPredicate predicate, SqlSearchCondition searchCondition, out ISqlPredicate newCondition, out ISqlPredicate? newPredicate)

Parameters

predicate ISqlPredicate
searchCondition SqlSearchCondition
newCondition ISqlPredicate
newPredicate ISqlPredicate

Returns

bool

OptimizeSimilarForSinglePredicate(SqlSearchCondition)

public IQueryElement OptimizeSimilarForSinglePredicate(SqlSearchCondition element)

Parameters

element SqlSearchCondition

Returns

IQueryElement

TryEvaluate(IQueryElement, out object?)

protected bool TryEvaluate(IQueryElement expr, out object? result)

Parameters

expr IQueryElement
result object

Returns

bool

TryEvaluateNoParameters(IQueryElement, out object?)

protected bool TryEvaluateNoParameters(IQueryElement expr, out object? result)

Parameters

expr IQueryElement
result object

Returns

bool

Visit(IQueryElement?)

Visitor dispatch method.

public override IQueryElement? Visit(IQueryElement? element)

Parameters

element IQueryElement

Returns

IQueryElement

VisitCaseItem(CaseItem)

protected override SqlCaseExpression.CaseItem VisitCaseItem(SqlCaseExpression.CaseItem element)

Parameters

element SqlCaseExpression.CaseItem

Returns

SqlCaseExpression.CaseItem

VisitExistsPredicate(Exists)

protected override IQueryElement VisitExistsPredicate(SqlPredicate.Exists predicate)

Parameters

predicate SqlPredicate.Exists

Returns

IQueryElement

VisitExprExprPredicate(ExprExpr)

protected override IQueryElement VisitExprExprPredicate(SqlPredicate.ExprExpr predicate)

Parameters

predicate SqlPredicate.ExprExpr

Returns

IQueryElement

VisitExprPredicate(Expr)

protected override IQueryElement VisitExprPredicate(SqlPredicate.Expr predicate)

Parameters

predicate SqlPredicate.Expr

Returns

IQueryElement

VisitInListPredicate(InList)

protected override IQueryElement VisitInListPredicate(SqlPredicate.InList predicate)

Parameters

predicate SqlPredicate.InList

Returns

IQueryElement

VisitInSubQueryPredicate(InSubQuery)

protected override IQueryElement VisitInSubQueryPredicate(SqlPredicate.InSubQuery predicate)

Parameters

predicate SqlPredicate.InSubQuery

Returns

IQueryElement

VisitIsDistinctPredicate(IsDistinct)

protected override IQueryElement VisitIsDistinctPredicate(SqlPredicate.IsDistinct predicate)

Parameters

predicate SqlPredicate.IsDistinct

Returns

IQueryElement

VisitIsNullPredicate(IsNull)

protected override IQueryElement VisitIsNullPredicate(SqlPredicate.IsNull predicate)

Parameters

predicate SqlPredicate.IsNull

Returns

IQueryElement

VisitIsTruePredicate(IsTrue)

protected override IQueryElement VisitIsTruePredicate(SqlPredicate.IsTrue predicate)

Parameters

predicate SqlPredicate.IsTrue

Returns

IQueryElement

VisitNotPredicate(Not)

protected override IQueryElement VisitNotPredicate(SqlPredicate.Not predicate)

Parameters

predicate SqlPredicate.Not

Returns

IQueryElement

VisitSqlBinaryExpression(SqlBinaryExpression)

protected override IQueryElement VisitSqlBinaryExpression(SqlBinaryExpression element)

Parameters

element SqlBinaryExpression

Returns

IQueryElement

VisitSqlCaseExpression(SqlCaseExpression)

protected override IQueryElement VisitSqlCaseExpression(SqlCaseExpression element)

Parameters

element SqlCaseExpression

Returns

IQueryElement

VisitSqlCastExpression(SqlCastExpression)

protected override IQueryElement VisitSqlCastExpression(SqlCastExpression element)

Parameters

element SqlCastExpression

Returns

IQueryElement

VisitSqlCoalesceExpression(SqlCoalesceExpression)

protected override IQueryElement VisitSqlCoalesceExpression(SqlCoalesceExpression element)

Parameters

element SqlCoalesceExpression

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

VisitSqlConditionExpression(SqlConditionExpression)

protected override IQueryElement VisitSqlConditionExpression(SqlConditionExpression element)

Parameters

element SqlConditionExpression

Returns

IQueryElement

VisitSqlFunction(SqlFunction)

protected override IQueryElement VisitSqlFunction(SqlFunction element)

Parameters

element SqlFunction

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

VisitSqlQuery(SelectQuery)

protected override IQueryElement VisitSqlQuery(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

Returns

IQueryElement

VisitSqlSearchCondition(SqlSearchCondition)

protected override IQueryElement VisitSqlSearchCondition(SqlSearchCondition element)

Parameters

element SqlSearchCondition

Returns

IQueryElement

VisitSqlTableSource(SqlTableSource)

protected override IQueryElement VisitSqlTableSource(SqlTableSource element)

Parameters

element SqlTableSource

Returns

IQueryElement

VisitSqlWhereClause(SqlWhereClause)

protected override IQueryElement VisitSqlWhereClause(SqlWhereClause element)

Parameters

element SqlWhereClause

Returns

IQueryElement