public FunctionInfo(ObjectName routineName, RoutineParameter[] parameters, SqlType returnType, FunctionType functionType) : base(routineName, parameters) { ReturnType = returnType; FunctionType = functionType; AssertUnboundAtEnd(); }
public FunctionInfo(ObjectName routineName, SqlType returnType, FunctionType functionType) : base(routineName) { ReturnType = returnType; FunctionType = functionType; AssertUnboundAtEnd(); }
public FunctionParameter(FunctionType[] types, string reference, FunctionParameterMatch match) : this(false) { this.types = types; if (String.IsNullOrEmpty(reference)) reference = NoRefernece; this.reference = String.Intern(reference); this.match = match; }
public UserFunction(ObjectName name, RoutineParameter[] parameters, SqlType returnType, FunctionType functionType) : base(name, parameters, returnType, functionType) { }
public UserFunction(ObjectName name, RoutineParameter[] parameters, FunctionType functionType) : base(name, parameters, functionType) { }
protected Function(ObjectName name, RoutineParameter[] parameters, SqlType returnType, FunctionType functionType) : this(new FunctionInfo(name, parameters, returnType, functionType)) { }
protected Function(ObjectName name, RoutineParameter[] parameters, FunctionType functionType) : this(name, parameters, null, functionType) { }
private FunctionType TypesConsume(int paramIndex, int paramConsume, IList<SqlType> args, int start, int end, FunctionType guessedT) { // If size mismatch on consumed amount if (end - start != paramConsume) return null; for (int i = start; i < end; ++i) { SqlType t = args[i]; FunctionParameter param = function.Parameters[paramIndex]; FunctionType[] types = param.Types; if (!TypeMatches(t, types)) return null; if (guessedT.IsReference) { string reference = param.Reference; if (guessedT.Reference.Equals(reference)) { guessedT = new FunctionType(t); } } // Go to the next param, ++paramIndex; } // All matches, return guessedT; }
private FunctionType RegexConsume(int paramIndex, IList<SqlType> args, int start, int end, FunctionType guessedT) { FunctionParameter param = function.Parameters[paramIndex]; FunctionParameterMatch regexType = param.Match; string reference = param.Reference; FunctionType[] types = param.Types; if (end - start == 0) if (regexType == FunctionParameterMatch.OneOrMore) { return null; } if (end - start > 1) { if (regexType == FunctionParameterMatch.ZeroOrOne) { return null; } } for (int i = start; i < end; ++i) { SqlType t = args[i]; if (!TypeMatches(t, types)) { return null; } if (guessedT.IsReference) { if (guessedT.Reference.Equals(reference)) { guessedT = new FunctionType(t); } } } return guessedT; }
public SystemFunctionInfo(string functionName, RoutineParameter[] parameters, SqlType returnType, FunctionType functionType) : base(new ObjectName(functionName), parameters, returnType, functionType) { }
public SystemFunctionInfo(string functionName, RoutineParameter[] parameters, FunctionType functionType) : this(functionName, parameters, null, functionType) { }
public IFunctionConfiguration OfType(FunctionType functionType) { FunctionType = functionType; return this; }
public FunctionParameter(FunctionType[] types) : this(types, FunctionParameterMatch.Exact) { }
public FunctionParameter(FunctionType[] types, FunctionParameterMatch match) : this(types, NoRefernece, match) { }
public FunctionInfo(ObjectName routineName, RoutineParameter[] parameters, FunctionType functionType) : this(routineName, parameters, null, functionType) { }
/// <summary> /// Constructs a <see cref="FunctionInfo"/> without arguments. /// </summary> /// <param name="routineName">The name of the function.</param> /// <param name="functionType">The type of function this</param> public FunctionInfo(ObjectName routineName, FunctionType functionType) : this(routineName, (SqlType)null, functionType) { }