Show / Hide Table of Contents

Class CoalescingOptimizer

An optimizer that coalesces adjacent operators if semantic equivalence can be maintained.

Inheritance
System.Object
QueryVisitor<QueryTree, MonadMember, QueryOperator>
QueryVisitor
CoalescingOptimizer
Implements
IOptimizer
Inherited Members
QueryVisitor.MakeFirst(FirstOperator, MonadMember)
QueryVisitor.VisitFirstPredicate(FirstPredicateOperator)
QueryVisitor.MakeFirstPredicate(FirstPredicateOperator, MonadMember, QueryTree)
QueryVisitor.VisitLambdaAbstraction(LambdaAbstraction)
QueryVisitor.MakeLambdaAbstraction(LambdaAbstraction, ReadOnlyCollection<QueryTree>)
QueryVisitor.VisitMonadAbstraction(MonadAbstraction)
QueryVisitor.MakeMonadAbstraction(MonadAbstraction, QueryTree)
QueryVisitor.MakeTake(TakeOperator, MonadMember, QueryTree)
QueryVisitor.MakeSelect(SelectOperator, MonadMember, QueryTree)
QueryVisitor.MakeWhere(WhereOperator, MonadMember, QueryTree)
QueryVisitor.Visit(ReadOnlyCollection<QueryTree>)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.Visit(QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitAndConvert<TStronglyTypedResult>(QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.Visit<TSource, TResult>(ReadOnlyCollection<TSource>, Func<TSource, TResult>)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitFirst(FirstOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeFirst(FirstOperator, MonadMember)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitFirstPredicate(FirstPredicateOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeFirstPredicate(FirstPredicateOperator, MonadMember, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitLambdaAbstraction(LambdaAbstraction)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeLambdaAbstraction(LambdaAbstraction, ReadOnlyCollection<QueryTree>)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitMonadAbstraction(MonadAbstraction)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeMonadAbstraction(MonadAbstraction, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitSelect(SelectOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeSelect(SelectOperator, MonadMember, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitTake(TakeOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeTake(TakeOperator, MonadMember, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitWhere(WhereOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeWhere(WhereOperator, MonadMember, QueryTree)
Namespace: System.Linq.CompilerServices.Optimizers
Assembly: Nuqleon.Linq.CompilerServices.Optimizers.dll
Syntax
public class CoalescingOptimizer : QueryVisitor, IOptimizer

Constructors

CoalescingOptimizer()

Declaration
public CoalescingOptimizer()

Methods

Optimize(QueryTree)

Optimizes the given query expression tree by coalescing adjacent operators.

Declaration
public QueryTree Optimize(QueryTree queryTree)
Parameters
Type Name Description
QueryTree queryTree

The query expression tree to optimize.

Returns
Type Description
QueryTree

An optimized version of the input query tree.

VisitFirst(FirstOperator)

Visits a FirstOperator and coalesces it with any possible child operators.

Declaration
protected override QueryOperator VisitFirst(FirstOperator op)
Parameters
Type Name Description
FirstOperator op

The operator to visit.

Returns
Type Description
QueryOperator

The coalesced operator.

Overrides
QueryVisitor.VisitFirst(FirstOperator)

VisitSelect(SelectOperator)

Visits a SelectOperator and coalesces it with any possible child operators.

Declaration
protected override QueryOperator VisitSelect(SelectOperator op)
Parameters
Type Name Description
SelectOperator op

The operator to visit.

Returns
Type Description
QueryOperator

The coalesced operator.

Overrides
QueryVisitor.VisitSelect(SelectOperator)

VisitTake(TakeOperator)

Visits a TakeOperator operator and coalesces it with any possible child operators.

Declaration
protected override QueryOperator VisitTake(TakeOperator op)
Parameters
Type Name Description
TakeOperator op

The operator to visit.

Returns
Type Description
QueryOperator

The coalesced operator.

Overrides
QueryVisitor.VisitTake(TakeOperator)

VisitWhere(WhereOperator)

Visits a WhereOperator and coalesces it with any possible child operators.

Declaration
protected override QueryOperator VisitWhere(WhereOperator op)
Parameters
Type Name Description
WhereOperator op

The operator to visit.

Returns
Type Description
QueryOperator

The coalesced operator.

Overrides
QueryVisitor.VisitWhere(WhereOperator)

Implements

IOptimizer
In This Article
Back to top Generated by DocFX