public override ExprNode Validate(ExprValidationContext validationContext) { if (_tableAccessColumn.IsMethodAgg) { throw new ExprValidationException("Invalid combination of aggregation state and aggregation accessor"); } var mfNode = (ExprAggMultiFunctionNode) _aggregateAccessMultiValueNode; mfNode.ValidatePositionals(validationContext); _tableAccessDesc = mfNode.ValidateAggregationTableRead(validationContext, _tableAccessColumn, _table); return null; }
protected override void ValidateBindingInternal(ExprValidationContext validationContext) { // validate group keys ValidateGroupKeys(tableMeta, validationContext); var column = (TableMetadataColumnAggregation) ValidateSubpropertyGetCol(tableMeta, SubpropName); // validate accessor factory i.e. the parameters types and the match to the required state if (column.IsMethodAgg) { throw new ExprValidationException("Invalid combination of aggregation state and aggregation accessor"); } var mfNode = (ExprAggMultiFunctionNode) aggregateAccessMultiValueNode; mfNode.ValidatePositionals(validationContext); tableAccessDesc = mfNode.ValidateAggregationTableRead(validationContext, column, tableMeta); }