Github user paul-rogers commented on the issue: https://github.com/apache/drill/pull/1184 One additional note. We noted that JDBC does not support the idea of a nested tuple (a Drill "map".) JDBC does support columns that return a Java object. To bridge the gap, Drill returns a Map column as a Java object. But, why a JSON object? The answer seems to lie with the `sqline` program. If we query a one-line JSON file with a nested object in `sqlline`, we get the following display: ``` SELECT * FROM `json/nested.json`; +---------+----------------------------------+ | custId | name | +---------+----------------------------------+ | 101 | {"first":"John","last":"Smith"} | +---------+----------------------------------+ ``` So, it seems likely that the the value of a Map object was translated to a JSON object so that when `sqlline` calls `toString()` on it, it ends up formatted nicely as above. Because of this, it may be hard to change the kind of objects returned from JDBC for a Map column.
---