Skip to content

Commit 479d533

Browse files
committed
Follow comment
1 parent 89bb678 commit 479d533

5 files changed

Lines changed: 29 additions & 16 deletions

File tree

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,9 @@ object FunctionRegistry {
319319

320320
val FUNC_ALIAS = TreeNodeTag[String]("functionAliasName")
321321

322+
val builtinFunctionScope = "SYSTEM"
323+
val userFunctionScope = "USER"
324+
322325
// Note: Whenever we add a new entry here, make sure we also update ExpressionToSQLSuite
323326
val expressions: Map[String, (ExpressionInfo, FunctionBuilder)] = Map(
324327
// misc non-aggregate functions

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,9 +1699,11 @@ class SessionCatalog(
16991699
// The session catalog caches some persistent functions in the FunctionRegistry
17001700
// so there can be duplicates.
17011701
functions.map {
1702-
case f if FunctionRegistry.functionSet.contains(f) => (f, "SYSTEM")
1703-
case f if TableFunctionRegistry.functionSet.contains(f) => (f, "SYSTEM")
1704-
case f => (f, "USER")
1702+
case f if FunctionRegistry.functionSet.contains(f) =>
1703+
(f, FunctionRegistry.builtinFunctionScope)
1704+
case f if TableFunctionRegistry.functionSet.contains(f) =>
1705+
(f, FunctionRegistry.builtinFunctionScope)
1706+
case f => (f, FunctionRegistry.userFunctionScope)
17051707
}.distinct
17061708
}
17071709

sql/core/src/main/scala/org/apache/spark/sql/execution/command/functions.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,9 @@ case class ShowFunctionsCommand(
208208
sparkSession.sessionState.catalog
209209
.listFunctions(dbName, pattern.getOrElse("*"))
210210
.collect {
211-
case (f, "USER") if showUserFunctions => f.unquotedString
212-
case (f, "SYSTEM") if showSystemFunctions => f.unquotedString
211+
case (f, FunctionRegistry.userFunctionScope) if showUserFunctions => f.unquotedString
212+
case (f, FunctionRegistry.builtinFunctionScope) if showSystemFunctions =>
213+
f.unquotedString
213214
}
214215
// Hard code "<>", "!=", "between", "case", and "||"
215216
// for now as there is no corresponding functions.

sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkGetFunctionsOperation.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,15 @@ private[hive] class SparkGetFunctionsOperation(
8686
val separateDisplaySystemFunctions =
8787
sqlContext.conf.getConf(SQLConf.THRIFTSERVER_SEPARATE_DISPLAY_SYSTEM_FUNCTION)
8888
var matchedBuiltInFunctions = if (separateDisplaySystemFunctions && functionPattern == "*"
89-
&& matchingDbs.nonEmpty) {
89+
&& matchingDbs.nonEmpty) {
9090
FunctionRegistry.functionSet ++ TableFunctionRegistry.functionSet
9191
} else {
9292
Set.empty[FunctionIdentifier]
9393
}
9494
matchingDbs.foreach { db =>
9595
catalog.listFunctions(db, functionPattern).foreach {
96-
case (funcIdentifier, "SYSTEM") if separateDisplaySystemFunctions =>
96+
case (funcIdentifier, FunctionRegistry.`builtinFunctionScope`)
97+
if separateDisplaySystemFunctions =>
9798
if (!matchedBuiltInFunctions.contains(funcIdentifier)) {
9899
matchedBuiltInFunctions += funcIdentifier
99100
}
@@ -113,7 +114,7 @@ private[hive] class SparkGetFunctionsOperation(
113114
val info = catalog.lookupFunctionInfo(functionIdentifier)
114115
val rowData = Array[AnyRef](
115116
DEFAULT_HIVE_CATALOG, // FUNCTION_CAT
116-
"SYSTEM", // FUNCTION_SCHEM
117+
FunctionRegistry.builtinFunctionScope, // FUNCTION_SCHEM
117118
functionIdentifier.funcName, // FUNCTION_NAME
118119
s"Usage: ${info.getUsage}\nExtended Usage:${info.getExtended}", // REMARKS
119120
DatabaseMetaData.functionResultUnknown.asInstanceOf[AnyRef], // FUNCTION_TYPE

sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/SparkMetadataOperationSuite.scala

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -242,15 +242,21 @@ class SparkMetadataOperationSuite extends HiveThriftServer2TestBase {
242242
checkResult(metaData.getFunctions(null, "default", "upPer"), Seq("upper"))
243243

244244
statement.execute(s"SET ${SQLConf.THRIFTSERVER_SEPARATE_DISPLAY_SYSTEM_FUNCTION.key}=true")
245-
checkResult(metaData.getFunctions(null, null, "overlay"), Seq("overlay"), "SYSTEM")
246-
checkResult(metaData.getFunctions(null, null, "overla*"), Seq("overlay"), "SYSTEM")
247-
checkResult(metaData.getFunctions(null, "", "overla*"), Seq("overlay"), "SYSTEM")
248-
checkResult(metaData.getFunctions(null, null, "does-not-exist*"), Seq.empty, "SYSTEM")
249-
checkResult(metaData.getFunctions(null, "default", "overlay"), Seq("overlay"), "SYSTEM")
245+
checkResult(metaData.getFunctions(null, null, "overlay"), Seq("overlay"),
246+
FunctionRegistry.builtinFunctionScope)
247+
checkResult(metaData.getFunctions(null, null, "overla*"), Seq("overlay"),
248+
FunctionRegistry.builtinFunctionScope)
249+
checkResult(metaData.getFunctions(null, "", "overla*"), Seq("overlay"),
250+
FunctionRegistry.builtinFunctionScope)
251+
checkResult(metaData.getFunctions(null, null, "does-not-exist*"), Seq.empty,
252+
FunctionRegistry.builtinFunctionScope)
253+
checkResult(metaData.getFunctions(null, "default", "overlay"), Seq("overlay"),
254+
FunctionRegistry.builtinFunctionScope)
250255
checkResult(metaData.getFunctions(null, "default", "shift*"),
251-
Seq("shiftleft", "shiftright", "shiftrightunsigned"), "SYSTEM")
252-
checkResult(metaData.getFunctions(null, "default", "upPer"), Seq("upper"), "SYSTEM")
253-
256+
Seq("shiftleft", "shiftright", "shiftrightunsigned"),
257+
FunctionRegistry.builtinFunctionScope)
258+
checkResult(metaData.getFunctions(null, "default", "upPer"), Seq("upper"),
259+
FunctionRegistry.builtinFunctionScope)
254260
}
255261
}
256262

0 commit comments

Comments
 (0)