@@ -660,6 +660,12 @@ case class ExternalMapToCatalyst private(
660660 val entry = ctx.freshName(" entry" )
661661 val entries = ctx.freshName(" entries" )
662662
663+ val keyElementJavaType = ctx.javaType(keyType)
664+ val valueElementJavaType = ctx.javaType(valueType)
665+ ctx.addMutableState(keyElementJavaType, key, " " )
666+ ctx.addMutableState(" boolean" , valueIsNull, " " )
667+ ctx.addMutableState(valueElementJavaType, value, " " )
668+
663669 val (defineEntries, defineKeyValue) = child.dataType match {
664670 case ObjectType (cls) if classOf [java.util.Map [_, _]].isAssignableFrom(cls) =>
665671 val javaIteratorCls = classOf [java.util.Iterator [_]].getName
@@ -671,8 +677,8 @@ case class ExternalMapToCatalyst private(
671677 val defineKeyValue =
672678 s """
673679 final $javaMapEntryCls $entry = ( $javaMapEntryCls) $entries.next();
674- ${ctx.javaType(keyType)} $ key = ( ${ctx.boxedType(keyType)}) $entry.getKey();
675- ${ctx.javaType(valueType)} $ value = ( ${ctx.boxedType(valueType)}) $entry.getValue();
680+ $key = ( ${ctx.boxedType(keyType)}) $entry.getKey();
681+ $value = ( ${ctx.boxedType(valueType)}) $entry.getValue();
676682 """
677683
678684 defineEntries -> defineKeyValue
@@ -686,17 +692,17 @@ case class ExternalMapToCatalyst private(
686692 val defineKeyValue =
687693 s """
688694 final $scalaMapEntryCls $entry = ( $scalaMapEntryCls) $entries.next();
689- ${ctx.javaType(keyType)} $ key = ( ${ctx.boxedType(keyType)}) $entry._1();
690- ${ctx.javaType(valueType)} $ value = ( ${ctx.boxedType(valueType)}) $entry._2();
695+ $key = ( ${ctx.boxedType(keyType)}) $entry._1();
696+ $value = ( ${ctx.boxedType(valueType)}) $entry._2();
691697 """
692698
693699 defineEntries -> defineKeyValue
694700 }
695701
696702 val valueNullCheck = if (ctx.isPrimitiveType(valueType)) {
697- s " boolean $valueIsNull = false; "
703+ s " $valueIsNull = false; "
698704 } else {
699- s " boolean $valueIsNull = $value == null; "
705+ s " $valueIsNull = $value == null; "
700706 }
701707
702708 val arrayCls = classOf [GenericArrayData ].getName
0 commit comments