aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheng Lian <lian@databricks.com>2015-11-17 18:11:08 +0800
committerCheng Lian <lian@databricks.com>2015-11-17 18:11:08 +0800
commitfa13301ae440c4c9594280f236bcca11b62fdd29 (patch)
tree446302d2c38ee03242d30bdd49c0b1e711b914ee
parentd79d8b08ff69b30b02fe87839e695e29bfea5ace (diff)
downloadspark-fa13301ae440c4c9594280f236bcca11b62fdd29.tar.gz
spark-fa13301ae440c4c9594280f236bcca11b62fdd29.tar.bz2
spark-fa13301ae440c4c9594280f236bcca11b62fdd29.zip
[SPARK-11191][SQL][FOLLOW-UP] Cleans up unnecessary anonymous HiveFunctionRegistry
According to discussion in PR #9664, the anonymous `HiveFunctionRegistry` in `HiveContext` can be removed now. Author: Cheng Lian <lian@databricks.com> Closes #9737 from liancheng/spark-11191.follow-up.
-rw-r--r--sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala10
-rw-r--r--sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUDFs.scala7
2 files changed, 6 insertions, 11 deletions
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
index 0c473799cc..2004f24ad2 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveContext.scala
@@ -454,15 +454,7 @@ class HiveContext private[hive](
// Note that HiveUDFs will be overridden by functions registered in this context.
@transient
override protected[sql] lazy val functionRegistry: FunctionRegistry =
- new HiveFunctionRegistry(FunctionRegistry.builtin.copy(), this) {
- override def lookupFunction(name: String, children: Seq[Expression]): Expression = {
- // Hive Registry need current database to lookup function
- // TODO: the current database of executionHive should be consistent with metadataHive
- executionHive.withHiveState {
- super.lookupFunction(name, children)
- }
- }
- }
+ new HiveFunctionRegistry(FunctionRegistry.builtin.copy(), this.executionHive)
// The Hive UDF current_database() is foldable, will be evaluated by optimizer, but the optimizer
// can't access the SessionState of metadataHive.
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUDFs.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUDFs.scala
index e6fe2ad5f2..2e8c026259 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUDFs.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUDFs.scala
@@ -43,16 +43,19 @@ import org.apache.spark.sql.catalyst.plans.logical._
import org.apache.spark.sql.catalyst.rules.Rule
import org.apache.spark.sql.catalyst.util.ArrayData
import org.apache.spark.sql.hive.HiveShim._
+import org.apache.spark.sql.hive.client.ClientWrapper
import org.apache.spark.sql.types._
private[hive] class HiveFunctionRegistry(
underlying: analysis.FunctionRegistry,
- hiveContext: HiveContext)
+ executionHive: ClientWrapper)
extends analysis.FunctionRegistry with HiveInspectors {
def getFunctionInfo(name: String): FunctionInfo = {
- hiveContext.executionHive.withHiveState {
+ // Hive Registry need current database to lookup function
+ // TODO: the current database of executionHive should be consistent with metadataHive
+ executionHive.withHiveState {
FunctionRegistry.getFunctionInfo(name)
}
}