From 68c59f14a51d589c93a20778a89fd45ab65d52fb Mon Sep 17 00:00:00 2001 From: Ergin Seyfe Date: Mon, 3 Oct 2016 23:28:39 -0700 Subject: [PATCH] [SPARK-17773] Input/Output] Add VoidObjectInspector Added VoidObjectInspector to the list of PrimitiveObjectInspectors (Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests) Executing following query was failing. select SOME_UDAF*(a.arr) from ( select Array(null) as arr from dim_one_row ) a After the fix, I am getting the correct output: res0: Array[org.apache.spark.sql.Row] = Array([null]) Author: Ergin Seyfe Closes #15337 from seyfe/add_void_object_inspector. --- .../main/scala/org/apache/spark/sql/hive/HiveInspectors.scala | 3 +++ .../scala/org/apache/spark/sql/hive/HiveInspectorSuite.scala | 1 + 2 files changed, 4 insertions(+) diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala index 9d56aec4a963b..ce6c533c9408e 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala @@ -424,6 +424,9 @@ private[hive] trait HiveInspectors { null } + case _: VoidObjectInspector => + (_: Any) => null // always be null for void object inspector + case soi: StandardStructObjectInspector => val schema = dataType.asInstanceOf[StructType] val wrappers = soi.getAllStructFieldRefs.asScala.zip(schema.fields).map { diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveInspectorSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveInspectorSuite.scala index 3b867bbfa1817..5fda367bd600d 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveInspectorSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveInspectorSuite.scala @@ -75,6 +75,7 @@ class HiveInspectorSuite extends SparkFunSuite with HiveInspectors { val data = Literal(true) :: + Literal(null) :: Literal(0.asInstanceOf[Byte]) :: Literal(0.asInstanceOf[Short]) :: Literal(0) ::