[
https://issues.apache.org/jira/browse/CALCITE-910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde updated CALCITE-910:
--------------------------------
Fix Version/s: 1.5.0-incubating
> Improve handling of ARRAY, MULTISET, STRUCT types
> -------------------------------------------------
>
> Key: CALCITE-910
> URL: https://issues.apache.org/jira/browse/CALCITE-910
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Assignee: Julian Hyde
> Fix For: 1.5.0-incubating
>
>
> Improve end-to-end handling of STRUCT, MAP, ARRAY and MULTISET types.
> Add annotations org.apache.calcite.adapter.java.Array and
> org.apache.calcite.adapter.java.Map to declare that a member of a class (i.e.
> a column) is of ARRAY or MAP type, and what the element/key/value types are.
> Add metadata so that Avatica JDBC knows that when you have gone into an ARRAY
> column you are looking at a record type of say (INTEGER, ARRAY DOUBLE).
> Currently the metadata only goes one level down and after that you are
> looking at objects.
> When an array or multiset is read, we need to know how it is internally
> represented. Currently it could be of type CUSTOM (e.g. a bean class such as
> Employee) or LIST or ARRAY. In this change we standardize on LIST. Thus when
> EnumerableUncollect comes to generate code for {code}select * from
> unnest(select employees from dept){code} it will know that employees is a
> list and each employee record is also a list.
> To do this we will need to convert (e.g. from an array of Employee objects)
> on the way in.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)