Show / Hide Table of Contents

Class AdjustConstantDependencies

Ensures for any Expression depending on a Literal or a RuntimeVariable, that Literal or RuntimeVariable is in the "topmost" possible Table closest to it. "Topmost" means the the Table right below the first Aggregation in the table path.

Inheritance
Object
ChangeDag<Expression, Table, IExpressionVisitor>
ChangeExpressions
AdjustConstantDependencies
Implements
IGenericExpressionVisitor<IEnumerable<Expression>>
IExpressionVisitor
IGenericVisitor<IEnumerable<Expression>>
Inherited Members
ChangeExpressions.CreatedExpressions
ChangeExpressions.Result
ChangeExpressions.Identifier(Expression)
ChangeExpressions.ChangeIdentifier(Expression)
ChangeExpressions.Change(Aggregand)
ChangeExpressions.Change(BinaryAggregation)
ChangeExpressions.Change(BinaryOperation)
ChangeExpressions.Change(ColumnReference)
ChangeExpressions.Change(DataSourceColumn)
ChangeExpressions.Change(Extern)
ChangeExpressions.Change(Filter)
ChangeExpressions.Change(JoinKey)
ChangeExpressions.Change(Literal)
ChangeExpressions.Change(RuntimeVariable)
ChangeExpressions.Change(TernaryOperation)
ChangeExpressions.Change(UnaryAggregation)
ChangeExpressions.Change(UnaryOperation)
ChangeExpressions.Change(UnionExpression)
ChangeExpressions.Change(VectorOperation)
ChangeExpressions.Change(UnaryWindowFunction)
ChangeExpressions.Visit(Aggregand)
ChangeExpressions.Visit(BinaryAggregation)
ChangeExpressions.Visit(BinaryOperation)
ChangeExpressions.Visit(ColumnReference)
ChangeExpressions.Visit(DataSourceColumn)
ChangeExpressions.Visit(Extern)
ChangeExpressions.Visit(Filter)
ChangeExpressions.Visit(JoinKey)
ChangeExpressions.Visit(Literal)
ChangeExpressions.Visit(RuntimeVariable)
ChangeExpressions.Visit(TernaryOperation)
ChangeExpressions.Visit(UnaryAggregation)
ChangeExpressions.Visit(UnaryOperation)
ChangeExpressions.Visit(UnionExpression)
ChangeExpressions.Visit(VectorOperation)
ChangeExpressions.Visit(UnaryWindowFunction)
ChangeDag<Expression, Table, IExpressionVisitor>.Mapping
ChangeDag<Expression, Table, IExpressionVisitor>.Reset()
ChangeDag<Expression, Table, IExpressionVisitor>.Identifier(Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.ChangeIdentifier(Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.ReplaceParent(Expression, Expression, Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.UberVisit<TSubnode>(TSubnode, Func<TSubnode, Expression>)
ChangeDag<Expression, Table, IExpressionVisitor>.UberVisit<TSubnode, TSubidentifier>(TSubnode, Func<TSubnode, Expression>)
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
Namespace: Mangrove.MetricSetTransformers.Normalization
Assembly: MetricSetTransformers.dll
Syntax
public class AdjustConstantDependencies : ChangeExpressions, IGenericExpressionVisitor<IEnumerable<Expression>>, IExpressionVisitor, IGenericVisitor<IEnumerable<Expression>>
Remarks

Literals and RuntimeVariables are conceptually "global" objects in the sense that they don't have any conceptual coupling with the Tables they belong to, as long as they are all within the same aggregation level.

In particular, this transformer is needed to avoid situations like SUM(1) with the constant 1 being several non-aggregation tables below: we don't want to create additional ColumnReferences to wrap that "1" to avoid bloating the output schema of that Table.

Methods

View Source

ReplaceParent(Expression, Expression, Expression)

Declaration
protected override Expression ReplaceParent(Expression expr, Expression oldParent, Expression newParent)
Parameters
Type Name Description
Expression expr
Expression oldParent
Expression newParent
Returns
Type Description
Expression
Overrides
Mangrove.MetricSetTransformers.Utilities.ChangeDag<Mangrove.MetricSetSyntaxTree.Expression, Mangrove.MetricSetSyntaxTree.Table, Mangrove.MetricSetSyntaxTree.IExpressionVisitor>.ReplaceParent(Mangrove.MetricSetSyntaxTree.Expression, Mangrove.MetricSetSyntaxTree.Expression, Mangrove.MetricSetSyntaxTree.Expression)

Implements

IGenericExpressionVisitor<T>
IExpressionVisitor
IGenericVisitor<T>

Extension Methods

ObjectExtensions.EventId(Object)
  • View Source
Back to top Generated by DocFX