in Microsoft.Azure.Cosmos/src/Linq/BuiltinFunctions/StringBuiltinFunctions.cs [513:631]
static StringBuiltinFunctions()
{
StringBuiltinFunctionDefinitions = new Dictionary<string, BuiltinFunctionVisitor>
{
{
"Concat",
new StringVisitConcat()
},
{
"Contains",
new StringVisitContains()
},
{
"EndsWith",
new SqlStringWithComparisonVisitor(SqlFunctionCallScalarExpression.Names.Endswith)
},
{
"IndexOf",
new SqlBuiltinFunctionVisitor(SqlFunctionCallScalarExpression.Names.IndexOf,
false,
new List<Type[]>()
{
new Type[]{typeof(char)},
new Type[]{typeof(string)},
new Type[]{typeof(char), typeof(int)},
new Type[]{typeof(string), typeof(int)},
})
},
{
"Count",
new StringVisitCount()
},
{
"ToLower",
new SqlBuiltinFunctionVisitor(SqlFunctionCallScalarExpression.Names.Lower,
false,
new List<Type[]>()
{
new Type[]{}
})
},
{
"TrimStart",
new StringVisitTrimStart()
},
{
nameof(CosmosLinqExtensions.RegexMatch),
new RegexMatchVisitor()
},
{
"Replace",
new SqlBuiltinFunctionVisitor(SqlFunctionCallScalarExpression.Names.Replace,
false,
new List<Type[]>()
{
new Type[]{typeof(char), typeof(char)},
new Type[]{typeof(string), typeof(string)}
})
},
{
"Reverse",
new StringVisitReverse()
},
{
"ToString",
new StringVisitToString()
},
{
"TrimEnd",
new StringVisitTrimEnd()
},
{
"Trim",
new StringVisitTrim()
},
{
"StartsWith",
new SqlStringWithComparisonVisitor(SqlFunctionCallScalarExpression.Names.Startswith)
},
{
"Substring",
new SqlBuiltinFunctionVisitor(SqlFunctionCallScalarExpression.Names.Substring,
false,
new List<Type[]>()
{
new Type[]{typeof(int), typeof(int)}
})
},
{
"ToUpper",
new SqlBuiltinFunctionVisitor(SqlFunctionCallScalarExpression.Names.Upper,
false,
new List<Type[]>()
{
new Type[]{}
})
},
{
"get_Chars",
new StringGetCharsVisitor()
},
{
"Equals",
new StringEqualsVisitor()
},
{
nameof(CosmosLinqExtensions.FullTextContains),
new FullTextContainsVisit()
},
{
nameof(CosmosLinqExtensions.FullTextContainsAll),
new FullTextContainsAllVisit()
},
{
nameof(CosmosLinqExtensions.FullTextContainsAny),
new FullTextContainsAnyVisit()
}
};
}