diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala index 026696aaec59a..c5b4c41404f0a 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala @@ -347,7 +347,7 @@ class CodegenContext extends Logging { */ def addBufferedState(dataType: DataType, variableName: String, initCode: String): ExprCode = { val value = addMutableState(javaType(dataType), variableName) - val code = dataType match { + val code = UserDefinedType.sqlType(dataType) match { case StringType => code"$value = $initCode.clone();" case _: StructType | _: ArrayType | _: MapType => code"$value = $initCode.copy();" case _ => code"$value = $initCode;"