Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,8 @@ class StaxXmlGenerator(

def writeElement(dt: DataType, v: Any, options: XmlOptions): Unit = (dt, v) match {
case (_, null) | (NullType, _) => gen.writeCharacters(options.nullValue)
case (StringType, v: UTF8String) => gen.writeCharacters(v.toString)
case (StringType, v: String) => gen.writeCharacters(v)
case (_: StringType, v: UTF8String) => gen.writeCharacters(v.toString)
case (_: StringType, v: String) => gen.writeCharacters(v)
case (TimestampType, v: Timestamp) =>
gen.writeCharacters(timestampFormatter.format(v.toInstant()))
case (TimestampType, v: Long) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1272,6 +1272,16 @@ class CollationSQLExpressionsSuite
| <A>true</A>
| <B>2.0</B>
|</ROW>""".stripMargin),
StructsToXmlTestCase("named_struct('A', 'aa', 'B', 'bb')", "UTF8_LCASE",
s"""<ROW>
| <A>aa</A>
| <B>bb</B>
|</ROW>""".stripMargin),
StructsToXmlTestCase("named_struct('A', 'aa', 'B', 'bb')", "UTF8_BINARY",
s"""<ROW>
| <A>aa</A>
| <B>bb</B>
|</ROW>""".stripMargin),
StructsToXmlTestCase("named_struct()", "UNICODE",
"<ROW/>"),
StructsToXmlTestCase("named_struct('time', to_timestamp('2015-08-26'))", "UNICODE_CI",
Expand Down