Namespace Mangrove.MetricSetTransformers.Validation
This namespace contains transformers and visitors for verifying that various assumptions about metrics plans hold.
Classes
AggregationLevelRange
Checks that there are a max number of aggregation levels in a plan This validator only prints the output tables in the errors. There can be multiple tables at the same aggregation level, and those don't count toward the limit. This validator checks the maximum depth of aggregation stack.
AggregationParentsAreInDifferentTables
Verify that for each aggregation, it has no ancestor aggregations on the same table.
BasicExpressionValidation
Perform Expression-specific validation.
ColumnReferenceDependency
Checks that no column reference depends on another column reference in the same table.
ColumnTableNamesAreUnique
Verifies that (ColumnReference name, Table name) pairs are unique.
ComputationIsNonTrivial
Verifies that all Aggregation tables have at least one aggregation expression.
DataSourceColumnIndicesAppearOnce
Verify that either: all DataSourceColumn objects have null indices, or that: each pair (DataSource, non-null DataSourceColumn index) appears at most once in a MetricsPlan.
DefaultMetricsPlanValidator
Instantiate an AggregateValidator that has the standard validations that should run on all Transformers.
EnoughAggregandLevels
Verifies that the MetricsPlan has the minimum required number of available Aggregand levels, as determined by Mangrove.MetricSetTransformers.Hacks.RollupDimensionsFinder.FindDimensions(Mangrove.MetricSetSyntaxTree.MetricsPlan).
ExpressionDependenciesExist
Validate that all expression dependencies exist in a MetricsPlans expression list.
ExpressionDependenciesPassThroughColumnReferences
Checks that for each expression, any immediate parent in a different table is correctly wrapped in a ColumnReference.
ExpressionLeafDependencies
Validate that a MetricsPlan's expressions don't depend on expressions in leaf tables unless they are of both in the same leaf table.
ExternExpressionsAreOfOneKind
JoinKeysAreColumnReferences
JoinSanity
Verifies that each Join table satisfies the following assumptions:
NoAggregationsOfUnknownType
Some emitters require knowing all data types of Expressions being aggregated. This validator finds all metrics that depend on aggregations applied to Unknown.
OnlySupportedRuntimeVariables
Verify that all RuntimeVariables present in the MetricsPlan have names from from a given set.
SingleAggregationPath
Checks whether there is a single aggregation path till the output.
SingleLeafBaseTable
Check that base-level tables (as defined by BaseTables(MetricsPlan)) have a unique leaf table.
TableDependenciesExist
Validate that dependencies for every table exist in the Tables array.
UnionsCombineIdenticalTables
Validate that Union tables and their union expressions are accurate.