diff --git a/src/NHibernate/Dialect/Function/SQLFunctionRegistry.cs b/src/NHibernate/Dialect/Function/SQLFunctionRegistry.cs index 7baa5a7d22..f61468b9c7 100644 --- a/src/NHibernate/Dialect/Function/SQLFunctionRegistry.cs +++ b/src/NHibernate/Dialect/Function/SQLFunctionRegistry.cs @@ -32,11 +32,11 @@ public ISQLFunction FindSQLFunction(string functionName) public bool HasFunction(string functionName) { - if (!userFunctions.ContainsKey(functionName) && !dialect.Functions.ContainsKey(functionName) && _functionAliases.TryGetValue(functionName, out var sqlFunction)) - { - functionName = sqlFunction; - } - return userFunctions.ContainsKey(functionName) || dialect.Functions.ContainsKey(functionName); + if (userFunctions.ContainsKey(functionName) || dialect.Functions.ContainsKey(functionName)) + return true; + if (_functionAliases.TryGetValue(functionName, out var sqlFunction) && !_functionAliases.ContainsKey(sqlFunction)) + return HasFunction(sqlFunction); + return false; } } }