[ 
https://issues.apache.org/jira/browse/FLINK-15595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17016751#comment-17016751
 ] 

Timo Walther commented on FLINK-15595:
--------------------------------------

The core problem is that FLIP-51 is still not entirely implemented and thus the 
operator tables are spread across the modules. The design of FLIP-68 is correct 
as far as I can see it. The core feature of ingesting Hive built-in functions 
works. People can declare there own modules with SQL built-in functions as a 
fallback. I agree that the latter behavior is a bit confusing, if there is a 
simple solution that requires minimal changes +1 but otherwise we can add a 
warning that the module feature has some caveats. Regular users will not use 
the modules anyway. What do you think?

> Resolution Order is chaotic not as FLIP-68 defined
> ---------------------------------------------------
>
>                 Key: FLINK-15595
>                 URL: https://issues.apache.org/jira/browse/FLINK-15595
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>            Reporter: Jingsong Lee
>            Priority: Critical
>             Fix For: 1.10.0
>
>
> First of all, the implementation is problematic. CoreModule returns 
> BuiltinFunctionDefinition, which cannot be resolved in 
> FunctionCatalogOperatorTable, so it will fall back to FlinkSqlOperatorTable.
> Second, the function defined by CoreModule is seriously incomplete. You can 
> compare it with FunctionCatalogOperatorTable, a lot less. This leads to the 
> fact that the priority of some functions is in CoreModule, and the priority 
> of some functions is behind all modules. This is confusing, which is not what 
> we want to define in FLIP-68. 
> We should:
>  * We should resolve BuiltinFunctionDefinition correctly in 
> FunctionCatalogOperatorTable.
>  * CoreModule should contains all functions in FlinkSqlOperatorTable, a 
> simple way could provided calcite wrapper to wrap all functions.
>  * PlannerContext.getBuiltinSqlOperatorTable should not contains 
> FlinkSqlOperatorTable, we should use one 
> FunctionCatalogOperatorTable.Otherwise, there will be a lot of confusion.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to