You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Rong Rong (JIRA)" <ji...@apache.org> on 2018/07/07 02:22:00 UTC

[jira] [Updated] (FLINK-9294) Improve type inference for UDFs with composite parameter or result type

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

Rong Rong updated FLINK-9294:
-----------------------------
    Description: 
Most of the UDF function signatures that includes composite types such as *{{MAP}}*, *{{ARRAY}}*, etc would require user to override *{{getParameterType}}* or *{{getResultType}}* method explicitly. 

It should be able to resolve the composite type based on the function signature, such as:

{code:java}
public String[] eval(Map<String, Integer> mapArg) { /* ...  */ }
{code}

The function catalog search should do either of the following:
1. Automatically resolve that:
- *{{ObjectArrayTypeInfo<BasicTypeInfo.STRING>}}* to be the result type.
- *{{MapTypeInfo<BasicTypeInfo.STRING, BasicTypeInfo.INTEGER>}}*  to be the parameter type.
2. Improved function mapping to find and locate function with such signatures.

During compilation, should do the following:
1. Consistent resolution for: (Scala.Map / java.util.Map) and (Scala.Seq / Java array)
2. Automatically ingest type cast function (see FLINK-9430) to match the correct type, or automatically generate the counter part of the corresponding Scala / Java implementation of the eval function.

  was:
Most of the UDF function signatures that includes composite types such as *{{MAP}}*, *{{ARRAY}}*, etc would require user to override *{{getParameterType}}* or *{{getResultType}}* method explicitly. 

It should be able to resolve the composite type based on the function signature, such as:

{code:java}
public String[] eval(Map<String, Integer> mapArg) { /* ...  */ }
{code}
should either 
1. Automatically resolve that:
- *{{ObjectArrayTypeInfo<BasicTypeInfo.STRING>}}* to be the result type.
- *{{MapTypeInfo<BasicTypeInfo.STRING, BasicTypeInfo.INTEGER>}}*  to be the parameter type.
2. Improved function mapping to find and locate function with such signatures.


> Improve type inference for UDFs with composite parameter or result type 
> ------------------------------------------------------------------------
>
>                 Key: FLINK-9294
>                 URL: https://issues.apache.org/jira/browse/FLINK-9294
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table API &amp; SQL
>            Reporter: Rong Rong
>            Assignee: Rong Rong
>            Priority: Major
>
> Most of the UDF function signatures that includes composite types such as *{{MAP}}*, *{{ARRAY}}*, etc would require user to override *{{getParameterType}}* or *{{getResultType}}* method explicitly. 
> It should be able to resolve the composite type based on the function signature, such as:
> {code:java}
> public String[] eval(Map<String, Integer> mapArg) { /* ...  */ }
> {code}
> The function catalog search should do either of the following:
> 1. Automatically resolve that:
> - *{{ObjectArrayTypeInfo<BasicTypeInfo.STRING>}}* to be the result type.
> - *{{MapTypeInfo<BasicTypeInfo.STRING, BasicTypeInfo.INTEGER>}}*  to be the parameter type.
> 2. Improved function mapping to find and locate function with such signatures.
> During compilation, should do the following:
> 1. Consistent resolution for: (Scala.Map / java.util.Map) and (Scala.Seq / Java array)
> 2. Automatically ingest type cast function (see FLINK-9430) to match the correct type, or automatically generate the counter part of the corresponding Scala / Java implementation of the eval function.



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