Show / Hide Table of Contents

Class KustoExpression

Expression emitter for the Kusto query language ( https://aka.ms/kdocs ). Can be used in Kusto emitters, or just for debugging.

Inheritance
Object
LoggingExpressionVisitorBase
ExpressionEmitterBase
KustoExpression
Implements
IGenericExpressionVisitor<String>
IExpressionVisitor
IGenericVisitor<String>
Inherited Members
ExpressionEmitterBase._output
ExpressionEmitterBase.Result
ExpressionEmitterBase.Reset()
ExpressionEmitterBase.VisitWithTracing(Aggregand)
ExpressionEmitterBase.VisitWithTracing(BinaryAggregation)
ExpressionEmitterBase.VisitWithTracing(DataSourceColumn)
ExpressionEmitterBase.VisitWithTracing(Extern)
ExpressionEmitterBase.VisitWithTracing(Filter)
ExpressionEmitterBase.VisitWithTracing(JoinKey)
ExpressionEmitterBase.VisitWithTracing(Literal)
ExpressionEmitterBase.VisitWithTracing(RuntimeVariable)
ExpressionEmitterBase.VisitWithTracing(TernaryOperation)
ExpressionEmitterBase.VisitWithTracing(UnaryAggregation)
ExpressionEmitterBase.VisitWithTracing(UnaryOperation)
ExpressionEmitterBase.VisitWithTracing(UnionExpression)
ExpressionEmitterBase.VisitWithTracing(VectorOperation)
ExpressionEmitterBase.AcceptWithSeparator(IEnumerable<Expression>, String, String, String)
ExpressionEmitterBase.AcceptAndAppend(Object[])
ExpressionEmitterBase.VisitParseExpression(UnaryOperation)
ExpressionEmitterBase.CreateVectorOperationFromBinary(VectorOperationKind, IEnumerable<Expression>)
ExpressionEmitterBase.ThrowHelpfulError(Object)
LoggingExpressionVisitorBase.Logger
LoggingExpressionVisitorBase.VisitorName
LoggingExpressionVisitorBase.Visit(JoinKey)
LoggingExpressionVisitorBase.Visit(RuntimeVariable)
LoggingExpressionVisitorBase.Visit(TernaryOperation)
LoggingExpressionVisitorBase.Visit(UnaryAggregation)
LoggingExpressionVisitorBase.Visit(UnaryOperation)
LoggingExpressionVisitorBase.Visit(UnionExpression)
LoggingExpressionVisitorBase.Visit(VectorOperation)
LoggingExpressionVisitorBase.Visit(Aggregand)
LoggingExpressionVisitorBase.Visit(BinaryAggregation)
LoggingExpressionVisitorBase.Visit(BinaryOperation)
LoggingExpressionVisitorBase.Visit(ColumnReference)
LoggingExpressionVisitorBase.Visit(DataSourceColumn)
LoggingExpressionVisitorBase.Visit(Extern)
LoggingExpressionVisitorBase.Visit(Filter)
LoggingExpressionVisitorBase.Visit(UnaryWindowFunction)
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
Namespace: Mangrove.MetricSetEmitters
Assembly: MetricSetEmitters.dll
Syntax
public class KustoExpression : ExpressionEmitterBase, IGenericExpressionVisitor<string>, IExpressionVisitor, IGenericVisitor<string>

Constructors

View Source

KustoExpression(ILogger)

Declaration
public KustoExpression(ILogger logger = null)
Parameters
Type Name Description
ILogger logger

Properties

View Source

AssignmentOperator

Declaration
protected override string AssignmentOperator { get; }
Property Value
Type Description
String
Overrides
ExpressionEmitterBase.AssignmentOperator
View Source

BinaryAggregationToOperator

Declaration
protected override IReadOnlyDictionary<BinaryAggregationKind, (string prefix, string separator, string suffix)> BinaryAggregationToOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<BinaryAggregationKind, ValueTuple<String, String, String>>
Overrides
ExpressionEmitterBase.BinaryAggregationToOperator
View Source

BinaryOperationToOperator

Declaration
protected override IReadOnlyDictionary<BinaryOperationKind, (string prefix, string infix, string suffix)> BinaryOperationToOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<BinaryOperationKind, ValueTuple<String, String, String>>
Overrides
ExpressionEmitterBase.BinaryOperationToOperator
View Source

LiteralFalse

Declaration
protected override string LiteralFalse { get; }
Property Value
Type Description
String
Overrides
ExpressionEmitterBase.LiteralFalse
View Source

LiteralTrue

Declaration
protected override string LiteralTrue { get; }
Property Value
Type Description
String
Overrides
ExpressionEmitterBase.LiteralTrue
View Source

Min_Max_Value

Not any sql key word can used by the MinValue and MaxValue, so use the constant.

Declaration
protected override Dictionary<string, string> Min_Max_Value { get; }
Property Value
Type Description
Dictionary<String, String>
Overrides
ExpressionEmitterBase.Min_Max_Value
View Source

NegativeInfinity

Declaration
protected override string NegativeInfinity { get; }
Property Value
Type Description
String
Overrides
ExpressionEmitterBase.NegativeInfinity
View Source

PositiveInfinity

Declaration
protected override string PositiveInfinity { get; }
Property Value
Type Description
String
Overrides
ExpressionEmitterBase.PositiveInfinity
View Source

TernaryOperationToOperator

Declaration
protected override IReadOnlyDictionary<TernaryOperationKind, (string prefix, string leftInfix, string rightInfix, string suffix)> TernaryOperationToOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<TernaryOperationKind, ValueTuple<String, String, String, String>>
Overrides
ExpressionEmitterBase.TernaryOperationToOperator
View Source

TypeKindToParseFromStringOperator

// See: https://kusto.azurewebsites.net/docs/kusto/query/tointfunction.html Char, Byte and UnsignedLong are not supported yet in Kusto

Declaration
protected override IReadOnlyDictionary<TypeKind, (string prefix, string suffix)> TypeKindToParseFromStringOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<TypeKind, ValueTuple<String, String>>
Overrides
ExpressionEmitterBase.TypeKindToParseFromStringOperator
View Source

TypeToName

Declaration
protected override IReadOnlyDictionary<TypeKind, string> TypeToName { get; }
Property Value
Type Description
IReadOnlyDictionary<TypeKind, String>
Overrides
ExpressionEmitterBase.TypeToName
Remarks

In Kusto all types are nullable, so the corresponding string for non-nullable types is the same as for nullable.

View Source

TypeToNull

Declaration
protected override IReadOnlyDictionary<TypeKind, string> TypeToNull { get; }
Property Value
Type Description
IReadOnlyDictionary<TypeKind, String>
Overrides
ExpressionEmitterBase.TypeToNull
View Source

UnaryAggregationToOperator

Declaration
protected override IReadOnlyDictionary<UnaryAggregationKind, (string op, string prefix, string suffix)> UnaryAggregationToOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<UnaryAggregationKind, ValueTuple<String, String, String>>
Overrides
ExpressionEmitterBase.UnaryAggregationToOperator
View Source

UnaryOperationToOperator

Declaration
protected override IReadOnlyDictionary<UnaryOperationKind, (string prefix, string suffix)> UnaryOperationToOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<UnaryOperationKind, ValueTuple<String, String>>
Overrides
ExpressionEmitterBase.UnaryOperationToOperator
View Source

VectorOperationToOperator

Declaration
protected override IReadOnlyDictionary<VectorOperationKind, (string prefix, string separator, string suffix)> VectorOperationToOperator { get; }
Property Value
Type Description
IReadOnlyDictionary<VectorOperationKind, ValueTuple<String, String, String>>
Overrides
ExpressionEmitterBase.VectorOperationToOperator
View Source

WindowFunctionSyntax

Declaration
protected override (string prefix, string separator, string suffix) WindowFunctionSyntax { get; }
Property Value
Type Description
ValueTuple<String, String, String>
Overrides
ExpressionEmitterBase.WindowFunctionSyntax

Methods

View Source

Escape(String)

Declaration
protected override string Escape(string input)
Parameters
Type Name Description
String input
Returns
Type Description
String
Overrides
ExpressionEmitterBase.Escape(String)
View Source

Visit(Literal)

Kusto does not find common types for the ternary ("iff") operator, so we have to be explicit about literal types. Refer to subpages of this page for which kinds of literals may be wrapped like type(literal): https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/

Declaration
public override void Visit(Literal expr)
Parameters
Type Name Description
Literal expr
Overrides
LoggingExpressionVisitorBase.Visit(Literal)
View Source

VisitCreateHistogramExpression(UnaryOperation)

Declaration
protected override void VisitCreateHistogramExpression(UnaryOperation expr)
Parameters
Type Name Description
UnaryOperation expr
Overrides
ExpressionEmitterBase.VisitCreateHistogramExpression(UnaryOperation)
View Source

VisitTypeCastExpression(UnaryOperation)

Visit a TypeCast expression.

Declaration
protected override void VisitTypeCastExpression(UnaryOperation expr)
Parameters
Type Name Description
UnaryOperation expr
Overrides
ExpressionEmitterBase.VisitTypeCastExpression(UnaryOperation)
Remarks

The result is a string in the format totype(expression-string). For example, todouble( 3*2 ).

View Source

VisitWithTracing(BinaryOperation)

Declaration
public override void VisitWithTracing(BinaryOperation expr)
Parameters
Type Name Description
BinaryOperation expr
Overrides
ExpressionEmitterBase.VisitWithTracing(BinaryOperation)
View Source

VisitWithTracing(ColumnReference)

Declaration
public override void VisitWithTracing(ColumnReference expr)
Parameters
Type Name Description
ColumnReference expr
Overrides
LoggingExpressionVisitorBase.VisitWithTracing(ColumnReference)
View Source

VisitWithTracing(UnaryWindowFunction)

Declaration
public override void VisitWithTracing(UnaryWindowFunction expr)
Parameters
Type Name Description
UnaryWindowFunction expr
Overrides
ExpressionEmitterBase.VisitWithTracing(UnaryWindowFunction)

Implements

IGenericExpressionVisitor<T>
IExpressionVisitor
IGenericVisitor<T>

Extension Methods

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