[
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)