@@ -86,19 +86,19 @@ case class Explode(attributeNames: Seq[String], child: Expression)
86
86
(child.dataType.isInstanceOf [ArrayType ] || child.dataType.isInstanceOf [MapType ])
87
87
88
88
private lazy val elementTypes = child.dataType match {
89
- case ArrayType (et, _ ) => et :: Nil
90
- case MapType (kt,vt, _ ) => kt :: vt :: Nil
89
+ case ArrayType (et, containsNull ) => (et, containsNull) :: Nil
90
+ case MapType (kt, vt, valueContainsNull ) => (kt, false ) :: (vt, valueContainsNull) :: Nil
91
91
}
92
92
93
93
// TODO: Move this pattern into Generator.
94
94
protected def makeOutput () =
95
95
if (attributeNames.size == elementTypes.size) {
96
96
attributeNames.zip(elementTypes).map {
97
- case (n, t) => AttributeReference (n, t, nullable = true )()
97
+ case (n, (t, nullable)) => AttributeReference (n, t, nullable)()
98
98
}
99
99
} else {
100
100
elementTypes.zipWithIndex.map {
101
- case (t, i) => AttributeReference (s " c_ $i" , t, nullable = true )()
101
+ case (( t, nullable), i) => AttributeReference (s " c_ $i" , t, nullable)()
102
102
}
103
103
}
104
104
0 commit comments