Table of Contents

Class WindowFunctionsMemberTranslator

Namespace
LinqToDB.Linq.Translation
Assembly
linq2db.dll
public class WindowFunctionsMemberTranslator : MemberTranslatorBase, IMemberTranslator
Inheritance
object
WindowFunctionsMemberTranslator
Implements
Derived
Inherited Members
Extension Methods

Constructors

WindowFunctionsMemberTranslator()

public WindowFunctionsMemberTranslator()

Properties

IsAggregateDistinctSupported

protected virtual bool IsAggregateDistinctSupported { get; }

Property Value

bool

IsAggregateWindowFunctionsSupported

protected virtual bool IsAggregateWindowFunctionsSupported { get; }

Property Value

bool

IsCorrelationSupported

protected virtual bool IsCorrelationSupported { get; }

Property Value

bool

IsCovarianceSupported

protected virtual bool IsCovarianceSupported { get; }

Property Value

bool

IsCumeDistSupported

protected virtual bool IsCumeDistSupported { get; }

Property Value

bool

IsFirstLastValueSupported

protected virtual bool IsFirstLastValueSupported { get; }

Property Value

bool

IsFrameExclusionSupported

protected virtual bool IsFrameExclusionSupported { get; }

Property Value

bool

IsFrameGroupsSupported

protected virtual bool IsFrameGroupsSupported { get; }

Property Value

bool

IsFrameRangeSupported

protected virtual bool IsFrameRangeSupported { get; }

Property Value

bool

IsFrameRowsSupported

protected virtual bool IsFrameRowsSupported { get; }

Property Value

bool

IsHypotheticalSetSupported

protected virtual bool IsHypotheticalSetSupported { get; }

Property Value

bool

IsKeepSupported

protected virtual bool IsKeepSupported { get; }

Property Value

bool

IsLeadLagDefaultSupported

protected virtual bool IsLeadLagDefaultSupported { get; }

Property Value

bool

IsLeadLagNullTreatmentSupported

protected virtual bool IsLeadLagNullTreatmentSupported { get; }

Property Value

bool

IsLeadLagSupported

protected virtual bool IsLeadLagSupported { get; }

Property Value

bool

IsLinearRegressionSupported

protected virtual bool IsLinearRegressionSupported { get; }

Property Value

bool

IsMedianSupported

protected virtual bool IsMedianSupported { get; }

Property Value

bool

IsNTileSupported

protected virtual bool IsNTileSupported { get; }

Property Value

bool

IsNthValueFromSupported

protected virtual bool IsNthValueFromSupported { get; }

Property Value

bool

IsNthValueSupported

protected virtual bool IsNthValueSupported { get; }

Property Value

bool

IsOrderedSetFilterSupported

protected virtual bool IsOrderedSetFilterSupported { get; }

Property Value

bool

IsOrderedSetWindowedSupported

protected virtual bool IsOrderedSetWindowedSupported { get; }

Property Value

bool

IsPercentRankSupported

protected virtual bool IsPercentRankSupported { get; }

Property Value

bool

IsPercentileContSupported

protected virtual bool IsPercentileContSupported { get; }

Property Value

bool

IsPercentileDiscSupported

protected virtual bool IsPercentileDiscSupported { get; }

Property Value

bool

IsRowNumberNeedsCasting

When true, the translated ROW_NUMBER() is wrapped in an explicit CAST to the result type. Providers whose ROW_NUMBER() does not yield the expected numeric type override this to opt in (e.g. ClickHouse). Default: false.

public virtual bool IsRowNumberNeedsCasting { get; }

Property Value

bool

IsStdDevSupported

protected virtual bool IsStdDevSupported { get; }

Property Value

bool

IsValueNullTreatmentSupported

protected virtual bool IsValueNullTreatmentSupported { get; }

Property Value

bool

IsVarianceBareSupported

protected virtual bool IsVarianceBareSupported { get; }

Property Value

bool

IsVarianceSupported

protected virtual bool IsVarianceSupported { get; }

Property Value

bool

IsWindowFilterSupported

protected virtual bool IsWindowFilterSupported { get; }

Property Value

bool

IsWindowFunctionsSupported

protected virtual bool IsWindowFunctionsSupported { get; }

Property Value

bool

StdDevFunctionName

protected virtual string StdDevFunctionName { get; }

Property Value

string

StdDevPopFunctionName

protected virtual string StdDevPopFunctionName { get; }

Property Value

string

StdDevSampFunctionName

protected virtual string StdDevSampFunctionName { get; }

Property Value

string

VarPopFunctionName

protected virtual string VarPopFunctionName { get; }

Property Value

string

VarSampFunctionName

protected virtual string VarSampFunctionName { get; }

Property Value

string

VarianceFunctionName

protected virtual string VarianceFunctionName { get; }

Property Value

string

Methods

CollectWindowFunctionInformation(ITranslationContext, Type, Expression[]?, Expression, out WindowFunctionInformation?, out SqlErrorExpression?)

protected static bool CollectWindowFunctionInformation(ITranslationContext translationContext, Type expressionType, Expression[]? functionArguments, Expression buildBody, out WindowFunctionsMemberTranslator.WindowFunctionInformation? functionInfo, out SqlErrorExpression? error)

Parameters

translationContext ITranslationContext
expressionType Type
functionArguments Expression[]
buildBody Expression
functionInfo WindowFunctionsMemberTranslator.WindowFunctionInformation
error SqlErrorExpression

Returns

bool

TranslateAverage(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateAverage(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateCorr(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateCorr(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateCount(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateCount(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateCovarPop(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateCovarPop(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateCovarSamp(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateCovarSamp(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateCumeDist(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateCumeDist(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateDenseRank(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateDenseRank(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateFirstValue(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateFirstValue(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateHypotheticalCumeDist(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateHypotheticalCumeDist(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateHypotheticalDenseRank(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateHypotheticalDenseRank(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateHypotheticalPercentRank(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateHypotheticalPercentRank(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateHypotheticalRank(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateHypotheticalRank(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateLag(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateLag(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateLastValue(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateLastValue(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateLead(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateLead(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateMax(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateMax(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateMedian(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateMedian(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateMin(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateMin(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateNTile(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateNTile(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateNthValue(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateNthValue(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateOrderItems(ISqlExpressionTranslator, NullsDefaultOrdering, bool, Type, IEnumerable<OrderByInformation>, List<SqlWindowOrderItem>, out SqlErrorExpression?)

protected bool TranslateOrderItems(ISqlExpressionTranslator translator, NullsDefaultOrdering defaultNullsOrdering, bool isNullsOrderingSupported, Type errorType, IEnumerable<WindowFunctionsMemberTranslator.OrderByInformation> orderBy, List<SqlWindowOrderItem> orderItems, out SqlErrorExpression? error)

Parameters

translator ISqlExpressionTranslator
defaultNullsOrdering NullsDefaultOrdering
isNullsOrderingSupported bool
errorType Type
orderBy IEnumerable<WindowFunctionsMemberTranslator.OrderByInformation>
orderItems List<SqlWindowOrderItem>
error SqlErrorExpression

Returns

bool

TranslatePartitionBy(ISqlExpressionTranslator, Type, IEnumerable<Expression>, List<ISqlExpression>, out SqlErrorExpression?)

protected bool TranslatePartitionBy(ISqlExpressionTranslator translator, Type errorType, IEnumerable<Expression> partitionBy, List<ISqlExpression> partitionByItems, out SqlErrorExpression? error)

Parameters

translator ISqlExpressionTranslator
errorType Type
partitionBy IEnumerable<Expression>
partitionByItems List<ISqlExpression>
error SqlErrorExpression

Returns

bool

TranslatePercentRank(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslatePercentRank(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslatePercentileCont(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslatePercentileCont(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslatePercentileContWindowed(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslatePercentileContWindowed(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslatePercentileDisc(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslatePercentileDisc(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslatePercentileDiscWindowed(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslatePercentileDiscWindowed(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRank(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRank(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRatioToReport(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRatioToReport(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRatioToReportNative(ITranslationContext, MethodCallExpression)

protected Expression? TranslateRatioToReportNative(ITranslationContext translationContext, MethodCallExpression methodCall)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression

Returns

Expression

TranslateRegrAvgX(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrAvgX(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrAvgY(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrAvgY(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrCount(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrCount(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrIntercept(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrIntercept(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrR2(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrR2(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrSXX(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrSXX(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrSXY(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrSXY(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrSYY(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrSYY(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRegrSlope(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRegrSlope(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateRowNumber(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateRowNumber(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateStdDev(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateStdDev(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateStdDevPop(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateStdDevPop(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateStdDevSamp(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateStdDevSamp(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateSum(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateSum(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateVarPop(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateVarPop(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateVarSamp(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateVarSamp(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateVariance(ITranslationContext, MethodCallExpression, TranslationFlags)

public virtual Expression? TranslateVariance(ITranslationContext translationContext, MethodCallExpression methodCall, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
translationFlags TranslationFlags

Returns

Expression

TranslateWindowFunction(ITranslationContext, MethodCallExpression, int?, int, DbDataType, string, Action<List<SqlFunctionArgument>, bool>?, Func<ISqlExpression, ISqlExpression>?)

protected Expression TranslateWindowFunction(ITranslationContext translationContext, MethodCallExpression methodCall, int? argumentIndex, int windowArgument, DbDataType dbDataType, string functionName, Action<List<SqlFunctionArgument>, bool>? adjustArguments = null, Func<ISqlExpression, ISqlExpression>? transform = null)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
argumentIndex int?
windowArgument int
dbDataType DbDataType
functionName string
adjustArguments Action<List<SqlFunctionArgument>, bool>
transform Func<ISqlExpression, ISqlExpression>

Returns

Expression

TranslateWindowFunctionMultiArg(ITranslationContext, MethodCallExpression, int[], int, DbDataType, string)

protected Expression TranslateWindowFunctionMultiArg(ITranslationContext translationContext, MethodCallExpression methodCall, int[] argumentIndexes, int windowArgument, DbDataType dbDataType, string functionName)

Parameters

translationContext ITranslationContext
methodCall MethodCallExpression
argumentIndexes int[]
windowArgument int
dbDataType DbDataType
functionName string

Returns

Expression