Exemple #1
0
        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;
        }
Exemple #2
0
        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);
        }