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
allowModifybool
Properties
DataOptions
protected DataOptions DataOptions { get; }
Property Value
EvaluationContext
protected EvaluationContext EvaluationContext { get; }
Property Value
MappingSchema
protected MappingSchema MappingSchema { get; }
Property Value
Methods
CanBeEvaluateNoParameters(IQueryElement)
protected bool CanBeEvaluateNoParameters(IQueryElement expr)
Parameters
exprIQueryElement
Returns
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
evaluationContextEvaluationContextnullabilityContextNullabilityContexttransformationInfoSqlQueryVisitor.IVisitorTransformationInfodataOptionsDataOptionsmappingSchemaMappingSchemaelementIQueryElementvisitQueriesboolreducePredicatesbool
Returns
OptimizeFunction(SqlFunction)
protected virtual IQueryElement OptimizeFunction(SqlFunction function)
Parameters
functionSqlFunction
Returns
OptimizeSimilarForSearch(ISqlPredicate, SqlSearchCondition, out ISqlPredicate, out ISqlPredicate?)
public bool OptimizeSimilarForSearch(ISqlPredicate predicate, SqlSearchCondition searchCondition, out ISqlPredicate newCondition, out ISqlPredicate? newPredicate)
Parameters
predicateISqlPredicatesearchConditionSqlSearchConditionnewConditionISqlPredicatenewPredicateISqlPredicate
Returns
OptimizeSimilarForSinglePredicate(SqlSearchCondition)
public IQueryElement OptimizeSimilarForSinglePredicate(SqlSearchCondition element)
Parameters
elementSqlSearchCondition
Returns
TryEvaluate(IQueryElement, out object?)
protected bool TryEvaluate(IQueryElement expr, out object? result)
Parameters
exprIQueryElementresultobject
Returns
TryEvaluateNoParameters(IQueryElement, out object?)
protected bool TryEvaluateNoParameters(IQueryElement expr, out object? result)
Parameters
exprIQueryElementresultobject
Returns
Visit(IQueryElement?)
Visitor dispatch method.
public override IQueryElement? Visit(IQueryElement? element)
Parameters
elementIQueryElement
Returns
VisitCaseItem(CaseItem)
protected override SqlCaseExpression.CaseItem VisitCaseItem(SqlCaseExpression.CaseItem element)
Parameters
elementSqlCaseExpression.CaseItem
Returns
VisitExistsPredicate(Exists)
protected override IQueryElement VisitExistsPredicate(SqlPredicate.Exists predicate)
Parameters
predicateSqlPredicate.Exists
Returns
VisitExprExprPredicate(ExprExpr)
protected override IQueryElement VisitExprExprPredicate(SqlPredicate.ExprExpr predicate)
Parameters
predicateSqlPredicate.ExprExpr
Returns
VisitExprPredicate(Expr)
protected override IQueryElement VisitExprPredicate(SqlPredicate.Expr predicate)
Parameters
predicateSqlPredicate.Expr
Returns
VisitInListPredicate(InList)
protected override IQueryElement VisitInListPredicate(SqlPredicate.InList predicate)
Parameters
predicateSqlPredicate.InList
Returns
VisitInSubQueryPredicate(InSubQuery)
protected override IQueryElement VisitInSubQueryPredicate(SqlPredicate.InSubQuery predicate)
Parameters
predicateSqlPredicate.InSubQuery
Returns
VisitIsDistinctPredicate(IsDistinct)
protected override IQueryElement VisitIsDistinctPredicate(SqlPredicate.IsDistinct predicate)
Parameters
predicateSqlPredicate.IsDistinct
Returns
VisitIsNullPredicate(IsNull)
protected override IQueryElement VisitIsNullPredicate(SqlPredicate.IsNull predicate)
Parameters
predicateSqlPredicate.IsNull
Returns
VisitIsTruePredicate(IsTrue)
protected override IQueryElement VisitIsTruePredicate(SqlPredicate.IsTrue predicate)
Parameters
predicateSqlPredicate.IsTrue
Returns
VisitNotPredicate(Not)
protected override IQueryElement VisitNotPredicate(SqlPredicate.Not predicate)
Parameters
predicateSqlPredicate.Not
Returns
VisitSqlBinaryExpression(SqlBinaryExpression)
protected override IQueryElement VisitSqlBinaryExpression(SqlBinaryExpression element)
Parameters
elementSqlBinaryExpression
Returns
VisitSqlCaseExpression(SqlCaseExpression)
protected override IQueryElement VisitSqlCaseExpression(SqlCaseExpression element)
Parameters
elementSqlCaseExpression
Returns
VisitSqlCastExpression(SqlCastExpression)
protected override IQueryElement VisitSqlCastExpression(SqlCastExpression element)
Parameters
elementSqlCastExpression
Returns
VisitSqlCoalesceExpression(SqlCoalesceExpression)
protected override IQueryElement VisitSqlCoalesceExpression(SqlCoalesceExpression element)
Parameters
elementSqlCoalesceExpression
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
VisitSqlConditionExpression(SqlConditionExpression)
protected override IQueryElement VisitSqlConditionExpression(SqlConditionExpression element)
Parameters
elementSqlConditionExpression
Returns
VisitSqlFunction(SqlFunction)
protected override IQueryElement VisitSqlFunction(SqlFunction element)
Parameters
elementSqlFunction
Returns
VisitSqlJoinedTable(SqlJoinedTable)
protected override IQueryElement VisitSqlJoinedTable(SqlJoinedTable element)
Parameters
elementSqlJoinedTable
Returns
VisitSqlNullabilityExpression(SqlNullabilityExpression)
protected override IQueryElement VisitSqlNullabilityExpression(SqlNullabilityExpression element)
Parameters
elementSqlNullabilityExpression
Returns
VisitSqlQuery(SelectQuery)
protected override IQueryElement VisitSqlQuery(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
VisitSqlSearchCondition(SqlSearchCondition)
protected override IQueryElement VisitSqlSearchCondition(SqlSearchCondition element)
Parameters
elementSqlSearchCondition
Returns
VisitSqlTableSource(SqlTableSource)
protected override IQueryElement VisitSqlTableSource(SqlTableSource element)
Parameters
elementSqlTableSource
Returns
VisitSqlWhereClause(SqlWhereClause)
protected override IQueryElement VisitSqlWhereClause(SqlWhereClause element)
Parameters
elementSqlWhereClause