Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22745#discussion_r226981527
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
 ---
    @@ -278,24 +278,20 @@ object JavaTypeInference {
     
           case _ if mapType.isAssignableFrom(typeToken) =>
             val (keyType, valueType) = mapKeyValueType(typeToken)
    -        val keyDataType = inferDataType(keyType)._1
    -        val valueDataType = inferDataType(valueType)._1
     
             val keyData =
               Invoke(
    -            MapObjects(
    +            UnresolvedMapObjects(
                   p => deserializerFor(keyType, Some(p)),
    -              Invoke(getPath, "keyArray", ArrayType(keyDataType)),
    -              keyDataType),
    +              UnresolvedGetArrayFromMap(getPath, GetArrayFromMap.Key())),
    --- End diff --
    
    Seems we don't need to make it unresolved
    
    ```
    case class GetArrayFromMap(map: Expression, getKey: Boolean) extends 
Expression = {
      override def inputTypes = Seq(MapType)
    
      override def dataType = {
        val MapType(kt, vt) = map.dataType.asInstanceOf[MapType]
        if (getKey) kv else vt
      }
    
      override def eval...
     
      override def doCodegen...
    }
    
    ```


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to