13 internal readonly
int _info = -1;
60 for (
int i = 0; i <
s_funcs.Length; i++)
121 internal override object Eval()
239 [
UnconditionalSuppressMessage(
"ReflectionAnalysis",
"IL2026:RequiresUnreferencedCode", Justification =
"Constant expressions are safe to be evaluated.")]
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
static ? string ToString(object? value)
static int ToInt32(object? value)
static DateTime ToDateTime(DateTime value)
static double ToDouble(object? value)
static readonly DBNull Value
static bool IsObjectNull(object value)
static StorageType GetStorageType(Type dataType)
static DateTimeOffset ConvertStringToDateTimeOffset(string value, IFormatProvider formatProvider)
static object ChangeType2(object value, StorageType stype, Type type, IFormatProvider formatProvider)
static bool ToBoolean(object value)
static Exception InWithoutList()
static Exception InvalidMinutesArgument()
static Exception InvalidType(string typeName)
static Exception FunctionArgumentOutOfRange(string arg, string func)
static Exception ArgumentTypeInteger(string function, int arg)
static Exception FunctionArgumentCount(string name)
static Exception ArgumentType(string function, int arg, Type type)
static Exception InvalidHoursArgument()
static Exception MismatchKindandTimeSpan()
static Exception NYI(string moreinfo)
static Exception ComputeNotAggregate(string expr)
static Exception UndefinedFunction(string name)
static Exception DatatypeConvertion(Type type1, Type type2)
static Exception InvalidTimeZoneRange()
static Exception NonConstantArgument()
static bool IsInteger(StorageType type)
void Bind(DataTable table, List< DataColumn > list)
void BindTable(DataTable table)
static bool IsIntegerSql(StorageType type)
static bool IsNumeric(StorageType type)
static bool IsFloatSql(StorageType type)
ExpressionNode Optimize()
override bool HasLocalAggregate()
override bool HasRemoteAggregate()
override bool DependsOn(DataColumn column)
override void Bind(DataTable table, List< DataColumn > list)
override object Eval(int[] recordNos)
object EvalFunction(FunctionId id, object[] argumentValues, DataRow row, DataRowVersion version)
override object Eval(DataRow row, DataRowVersion version)
FunctionNode(DataTable table, string name)
readonly TypeLimiter _capturedLimiter
Type GetDataType(ExpressionNode node)
override bool IsTableConstant()
static readonly Function[] s_funcs
override ExpressionNode Optimize()
ExpressionNode[] _arguments
override bool IsConstant()
void AddArgument(ExpressionNode argument)
static TypeLimiter Capture()
static void EnsureTypeIsAllowed(Type type, TypeLimiter capturedLimiter=null)
static double Abs(double value)
static DeserializationToken StartDeserialization()
static ? Type GetType(string typeName, bool throwOnError, bool ignoreCase)
static DateTimeOffset Now