Skip to content

Commit f6a78fc

Browse files
committed
add test as well
1 parent 7e47e03 commit f6a78fc

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/ScalaReflectionSuite.scala

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import java.math.BigInteger
2121
import java.sql.{Date, Timestamp}
2222

2323
import org.apache.spark.SparkFunSuite
24+
import org.apache.spark.sql.catalyst.expressions.{BoundReference, Literal, NewInstance}
2425
import org.apache.spark.sql.types._
26+
import org.apache.spark.unsafe.types.UTF8String
2527

2628
case class PrimitiveData(
2729
intField: Int,
@@ -229,4 +231,16 @@ class ScalaReflectionSuite extends SparkFunSuite {
229231
assert(anyTypes.forall(!_.isPrimitive))
230232
assert(anyTypes === Seq(classOf[java.lang.Object], classOf[java.lang.Object]))
231233
}
234+
235+
test("SPARK-15062: Get correct serializer for List[_]") {
236+
val list = List(1, 2, 3)
237+
val serializer = extractorsFor[List[Int]](BoundReference(
238+
0, ObjectType(list.getClass), nullable = false))
239+
assert(serializer.children.size == 2)
240+
assert(serializer.children.head.isInstanceOf[Literal])
241+
assert(serializer.children.head.asInstanceOf[Literal].value === UTF8String.fromString("value"))
242+
assert(serializer.children.last.isInstanceOf[NewInstance])
243+
assert(serializer.children.last.asInstanceOf[NewInstance]
244+
.cls.isInstanceOf[Class[org.apache.spark.sql.catalyst.util.GenericArrayData]])
245+
}
232246
}

0 commit comments

Comments
 (0)