@@ -7,6 +7,8 @@ public class SQLFunctionRegistry
77 {
88 private readonly Dialect dialect ;
99 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" } } ;
1012
1113 public SQLFunctionRegistry ( Dialect dialect , IDictionary < string , ISQLFunction > userFunctions )
1214 {
@@ -20,8 +22,11 @@ public SQLFunctionRegistry(Dialect dialect, IDictionary<string, ISQLFunction> us
2022 /// </summary>
2123 public ISQLFunction FindSQLFunction ( string functionName )
2224 {
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 ) )
2530 {
2631 dialect . Functions . TryGetValue ( functionName , out result ) ;
2732 }
@@ -30,6 +35,10 @@ public ISQLFunction FindSQLFunction(string functionName)
3035
3136 public bool HasFunction ( string functionName )
3237 {
38+ if ( ! userFunctions . ContainsKey ( functionName ) && ! dialect . Functions . ContainsKey ( functionName ) && _functionAliases . TryGetValue ( functionName , out var sqlFunction ) )
39+ {
40+ functionName = sqlFunction ;
41+ }
3342 return userFunctions . ContainsKey ( functionName ) || dialect . Functions . ContainsKey ( functionName ) ;
3443 }
3544 }
0 commit comments