[
https://issues.apache.org/jira/browse/FLINK-15595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17015649#comment-17015649
]
Bowen Li commented on FLINK-15595:
----------------------------------
The current behavior is actually exactly what FLIP-68 defines with example code
in section "CoreModule and CoreModuleFactory" in the wiki.
This is just a bug resulting from no one reviewing FLIP-68 realizes there are
built-in functions residing out of BuiltInFunctionDefinitions.
> 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)