Julian Hyde created CALCITE-910:
-----------------------------------

             Summary: 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


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)

Reply via email to