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

Ran Tao updated CALCITE-6037:
-----------------------------
    Description: 
In SqlLibraryOperators, we defined some SqlFunctions like below:
{code:java}
@LibraryOperator(libraries = {SPARK})
public static final SqlFunction ARRAY =
    SqlBasicFunction.create("ARRAY",
        SqlLibraryOperators::arrayReturnType,
        OperandTypes.SAME_VARIADIC);

public static final SqlFunction EXTRACT_VALUE =            
SqlBasicFunction.create("EXTRACTVALUE", 
ReturnTypes.VARCHAR_2000.andThen(SqlTypeTransforms.FORCE_NULLABLE), 
OperandTypes.STRING_STRING); 

more ...{code}
 

It will cause the error function category:
||function name||current category||expected category||
|ARRAY|Numeric|System|
|EXTRACT_VALUE|Numeric|String|
|XML_TRANSFORM|Numeric|String|
|EXTRACT|Numeric|String|
|EXISTSNODE|Numeric|String|

 

because they used a simplified constructor of SqlBasicFunction by set function 
category to Numeric forever. We need to set expected function category.

  was:
In SqlLibraryOperators, we defined some SqlFunctions like below:
{code:java}
@LibraryOperator(libraries = {SPARK})
public static final SqlFunction ARRAY =
    SqlBasicFunction.create("ARRAY",
        SqlLibraryOperators::arrayReturnType,
        OperandTypes.SAME_VARIADIC);

public static final SqlFunction EXTRACT_VALUE =       
SqlBasicFunction.create("EXTRACTVALUE", 
ReturnTypes.VARCHAR_2000.andThen(SqlTypeTransforms.FORCE_NULLABLE), 
OperandTypes.STRING_STRING); 

more ...{code}
 

It will cause the error function category:
||function name||current category||expected category||
|ARRAY|Numeric|System|
|EXTRACT_VALUE|Numeric|String|
|XML_TRANSFORM|Numeric|String|
|EXTRACT|Numeric|String|
|EXISTSNODE|Numeric|String|

 

because they used a simplified constructor of SqlBasicFunction by set function 
category to Numeric forever. We need to set expected function category.


> The function category of ARRAY/EXTRACT_VALUE/XML_TRANSFORM/EXTRACT/EXISTSNODE 
> is incorrect
> ------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-6037
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6037
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.35.0
>            Reporter: Ran Tao
>            Assignee: Ran Tao
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.36.0
>
>
> In SqlLibraryOperators, we defined some SqlFunctions like below:
> {code:java}
> @LibraryOperator(libraries = {SPARK})
> public static final SqlFunction ARRAY =
>     SqlBasicFunction.create("ARRAY",
>         SqlLibraryOperators::arrayReturnType,
>         OperandTypes.SAME_VARIADIC);
> public static final SqlFunction EXTRACT_VALUE =            
> SqlBasicFunction.create("EXTRACTVALUE", 
> ReturnTypes.VARCHAR_2000.andThen(SqlTypeTransforms.FORCE_NULLABLE), 
> OperandTypes.STRING_STRING); 
> more ...{code}
>  
> It will cause the error function category:
> ||function name||current category||expected category||
> |ARRAY|Numeric|System|
> |EXTRACT_VALUE|Numeric|String|
> |XML_TRANSFORM|Numeric|String|
> |EXTRACT|Numeric|String|
> |EXISTSNODE|Numeric|String|
>  
> because they used a simplified constructor of SqlBasicFunction by set 
> function category to Numeric forever. We need to set expected function 
> category.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to