protected void Register(SystemFunctionInfo functionInfo, Func <InvokeContext, InvokeResult> body, Func <InvokeContext, Field, Field> afterAggregate, Func <InvokeContext, SqlType> returnType) { if (afterAggregate != null && functionInfo.FunctionType != FunctionType.Aggregate) { throw new ArgumentException("Cannot specify an after-aggregation on non-aggregate function."); } Register(new DelegateFunction(functionInfo, body, afterAggregate, returnType)); }
protected SystemFunction(SystemFunctionInfo functionInfo) : base(functionInfo) { }
protected void Register(SystemFunctionInfo functionInfo, Func <InvokeContext, InvokeResult> body, Func <InvokeContext, SqlType> returnType) { Register(functionInfo, body, null, returnType); }
protected SystemFunction(SystemFunctionInfo functionInfo) : base(functionInfo) { }