You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Analytics Engine] Recursively normalize nested Arrow Text in ArrowValues
ArrowValues.toJavaValue was the boundary that converts Arrow vectors to
plain Java values handed to ExprValueUtils, but it only stripped Arrow's
`Text` wrapper at one level — top-level VarCharVector cells, MapVector
entry values, and ListVector elements.
Nested shapes (e.g. the BRAIN patterns `tokens` column, which is
Map<String, List<String>>) escaped with raw `Text` wrappers inside the
inner list, because MapVector's value-extraction path didn't recurse
into the list's elements. ExprValueUtils.fromObjectValue then rejected
those raw Text objects with "unsupported object class".
Introduce a small private `normalize(Object)` helper that recurses
through Lists, Maps, and Text wrappers, so containers of any depth land
on the SQL side as pure Java types. This keeps the Arrow→Java
conversion responsibility where it belongs (the analytics-engine result
materialization) instead of leaking Arrow type knowledge into the SQL
plugin's generic value converter.
Signed-off-by: Kai Huang <ahkcs@amazon.com>
0 commit comments