From 4ba345b2da195ac35c86d1575ca42b1661643242 Mon Sep 17 00:00:00 2001 From: ulysses Date: Mon, 22 Jun 2020 18:49:43 +0800 Subject: [PATCH] fix --- .../org/apache/spark/sql/catalyst/analysis/Analyzer.scala | 8 ++++---- .../apache/spark/sql/connector/DataSourceV2SQLSuite.scala | 2 +- .../org/apache/spark/sql/execution/command/DDLSuite.scala | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala index eda2bc3edd27d..cc99872eb8c2e 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala @@ -1885,14 +1885,14 @@ class Analyzer( } /** - * Replaces [[UnresolvedFunction]]s with concrete [[Expression]]s. + * Replaces [[UnresolvedFunction]]s and [[UnresolvedFunc]] with concrete [[Expression]]s. */ object ResolveFunctions extends Rule[LogicalPlan] { val trimWarningEnabled = new AtomicBoolean(true) def apply(plan: LogicalPlan): LogicalPlan = plan.resolveOperatorsUp { - case RefreshFunction(UnresolvedFunc(multipartIdent)) => - val funcIdent = parseSessionCatalogFunctionIdentifier(multipartIdent, "REFRESH FUNCTION") - ResolveFunctions(ResolvedFunc(currentCatalog, funcIdent)) + case UnresolvedFunc(multipartIdent) => + val funcIdent = parseSessionCatalogFunctionIdentifier(multipartIdent, s"${plan.nodeName}") + ResolvedFunc(currentCatalog, funcIdent) case q: LogicalPlan => q transformExpressions { diff --git a/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala index a9e054f67cbf8..ec2e9d6ee0458 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/connector/DataSourceV2SQLSuite.scala @@ -2214,7 +2214,7 @@ class DataSourceV2SQLSuite val e = intercept[AnalysisException] { sql("REFRESH FUNCTION testcat.ns1.ns2.fun") } - assert(e.message.contains("REFRESH FUNCTION is only supported in v1 catalog")) + assert(e.message.contains("RefreshFunction is only supported in v1 catalog")) val e1 = intercept[AnalysisException] { sql("REFRESH FUNCTION default.ns1.ns2.fun") diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala index 0a0b435bc5fe8..0ff078a7f8968 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala @@ -3035,14 +3035,14 @@ abstract class DDLSuite extends QueryTest with SQLTestUtils { val msg = intercept[AnalysisException] { sql("REFRESH FUNCTION md5") }.getMessage - assert(msg.contains("Cannot refresh native function")) + assert(msg.contains("Cannot refresh builtin function")) withUserDefinedFunction("func1" -> true) { sql("CREATE TEMPORARY FUNCTION func1 AS 'test.org.apache.spark.sql.MyDoubleAvg'") val msg = intercept[AnalysisException] { sql("REFRESH FUNCTION func1") }.getMessage - assert(msg.contains("Cannot refresh temp function")) + assert(msg.contains("Cannot refresh temporary function")) } withUserDefinedFunction("func1" -> false) {