diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/Registry.java ql/src/java/org/apache/hadoop/hive/ql/exec/Registry.java index b4d35a4683..1c21ddac9c 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/Registry.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/Registry.java @@ -339,7 +339,14 @@ public FunctionInfo getFunctionInfo(String functionName) throws SemanticExceptio } public WindowFunctionInfo getWindowFunctionInfo(String functionName) throws SemanticException { + // First try without qualifiers - would resolve builtin/temp functions FunctionInfo info = getFunctionInfo(WINDOW_FUNC_PREFIX + functionName); + // Try qualifying with current db name for permanent functions + if (info == null) { + String qualifiedName = FunctionUtils.qualifyFunctionName( + functionName, SessionState.get().getCurrentDatabase().toLowerCase()); + info = getFunctionInfo(WINDOW_FUNC_PREFIX + qualifiedName); + } if (info instanceof WindowFunctionInfo) { return (WindowFunctionInfo) info; }