[ 
https://issues.apache.org/jira/browse/CALCITE-2670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hongze Zhang updated CALCITE-2670:
----------------------------------
    Description: 
In current code master of Calcite, operator *JSON_ARRAYAGG* and 
*JSON_OBJECTAGG* are separated to *JSON_ARRAYAGG_NULL_ON_NULL*, 
*JSON_ARRAYAGG_ABSENT_ON_NULL*, *JSON_OBJECTAGG_NULL_ON_NULL* and 
*JSON_OBJECTAGG_ABSENT_ON_NULL* in SqlStdOperatorTable.java. This is OK for 
now, but may deliver more difficulty on extending syntax of *JSON_ARRAYAGG* and 
*JSON_OBJECTAGG* and on implement logical plan by adapters.

This is basically to combine the 4 operators to 2, this is a improvement list:
 # Combine *JSON_ARRAYAGG_NULL_ON_NULL* and *JSON_ARRAYAGG_ABSENT_ON_NULL*
 # Combine *JSON_OBJECTAGG_NULL_ON_NULL* and *JSON_OBJECTAGG_ABSENT_ON_NULL*
 # *SYMBOL* type Support for *JavaTypeFactoryImpl#getJavaClass*
 This is to generate *Enum* java type for *SYMBOL*. Current version of Calcite 
generates *Object[]*, which delivers type casting error, or some method 
compatible problems when we combine the functions above.
 # Add SQL-to-Rel test cases for JSON functions.

  was:
Improvement contains following:
 # Combine *JSON_ARRAYAGG_NULL_ON_NULL* and *JSON_ARRAYAGG_ABSENT_ON_NULL*
 # Combine *JSON_OBJECTAGG_NULL_ON_NULL* and *JSON_OBJECTAGG_ABSENT_ON_NULL*
 # Add *SYMBOL* type Support for *JavaTypeFactoryImpl#getJavaClass*
 This is to generate *Enum* java type for *SYMBOL*. Current version of Calcite 
generates *Object[]*, which delivers type casting error, or some method 
compatible problems when Calcite tries to pass enum parameters to an aggregate 
function.
 # Add SQL-to-Rel test cases for JSON functions.


> Combine similar JSON aggregate functions in operator table
> ----------------------------------------------------------
>
>                 Key: CALCITE-2670
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2670
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Hongze Zhang
>            Assignee: Julian Hyde
>            Priority: Major
>
> In current code master of Calcite, operator *JSON_ARRAYAGG* and 
> *JSON_OBJECTAGG* are separated to *JSON_ARRAYAGG_NULL_ON_NULL*, 
> *JSON_ARRAYAGG_ABSENT_ON_NULL*, *JSON_OBJECTAGG_NULL_ON_NULL* and 
> *JSON_OBJECTAGG_ABSENT_ON_NULL* in SqlStdOperatorTable.java. This is OK for 
> now, but may deliver more difficulty on extending syntax of *JSON_ARRAYAGG* 
> and *JSON_OBJECTAGG* and on implement logical plan by adapters.
> This is basically to combine the 4 operators to 2, this is a improvement list:
>  # Combine *JSON_ARRAYAGG_NULL_ON_NULL* and *JSON_ARRAYAGG_ABSENT_ON_NULL*
>  # Combine *JSON_OBJECTAGG_NULL_ON_NULL* and *JSON_OBJECTAGG_ABSENT_ON_NULL*
>  # *SYMBOL* type Support for *JavaTypeFactoryImpl#getJavaClass*
>  This is to generate *Enum* java type for *SYMBOL*. Current version of 
> Calcite generates *Object[]*, which delivers type casting error, or some 
> method compatible problems when we combine the functions above.
>  # Add SQL-to-Rel test cases for JSON functions.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to