@@ -7,6 +7,8 @@ public class SQLFunctionRegistry
7
7
{
8
8
private readonly Dialect dialect ;
9
9
private readonly IDictionary < string , ISQLFunction > userFunctions ;
10
+ //Temporary alias support
11
+ private static Dictionary < string , string > _functionAliases = new Dictionary < string , string > ( StringComparer . OrdinalIgnoreCase ) { { "secondtruncated" , "second" } } ;
10
12
11
13
public SQLFunctionRegistry ( Dialect dialect , IDictionary < string , ISQLFunction > userFunctions )
12
14
{
@@ -20,8 +22,11 @@ public SQLFunctionRegistry(Dialect dialect, IDictionary<string, ISQLFunction> us
20
22
/// </summary>
21
23
public ISQLFunction FindSQLFunction ( string functionName )
22
24
{
23
- ISQLFunction result ;
24
- if ( ! userFunctions . TryGetValue ( functionName , out result ) )
25
+ if ( ! userFunctions . ContainsKey ( functionName ) && ! dialect . Functions . ContainsKey ( functionName ) && _functionAliases . TryGetValue ( functionName , out var sqlFunction ) )
26
+ {
27
+ functionName = sqlFunction ;
28
+ }
29
+ if ( ! userFunctions . TryGetValue ( functionName , out ISQLFunction result ) )
25
30
{
26
31
dialect . Functions . TryGetValue ( functionName , out result ) ;
27
32
}
@@ -30,6 +35,10 @@ public ISQLFunction FindSQLFunction(string functionName)
30
35
31
36
public bool HasFunction ( string functionName )
32
37
{
38
+ if ( ! userFunctions . ContainsKey ( functionName ) && ! dialect . Functions . ContainsKey ( functionName ) && _functionAliases . TryGetValue ( functionName , out var sqlFunction ) )
39
+ {
40
+ functionName = sqlFunction ;
41
+ }
33
42
return userFunctions . ContainsKey ( functionName ) || dialect . Functions . ContainsKey ( functionName ) ;
34
43
}
35
44
}
0 commit comments