Github user vofque commented on a diff in the pull request:
https://github.com/apache/spark/pull/22745#discussion_r227016344
--- 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 --
My idea was to replace this unresolved expression with _Invoke_.
Do you mean to write _eval_ and _doGenCode_ from scratch?
I don't see a way to wrap _Invoke_, as _doGenCode_ is protected and can't
be delegated to _Invoke_.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]