[
https://issues.apache.org/jira/browse/FLINK-13741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16908820#comment-16908820
]
Terry Wang commented on FLINK-13741:
------------------------------------
[spark sql show function syntax
|https://docs.databricks.com/spark/latest/spark-sql/language-manual/show-functions.html]
SHOW [USER|SYSTEM|ALL] FUNCTIONS ([LIKE] regex | [db_name.]function_name)
[presto sql show function
syntax|https://prestodb.github.io/docs/current/sql/show-functions.html]
Simply use `SHOW FUNCTIONS` to list all the functions available for use in
queries.
[snowflake
sql|https://docs.snowflake.net/manuals/sql-reference/sql/show-user-functions.html]
SHOW FUNCTIONS Lists all the native (i.e. system-defined/built-in) scalar
functions provided by Snowflake, as well as any UDFs that have been created for
your account.
[snowflake
sql|https://docs.snowflake.net/manuals/sql-reference/sql/show-functions.html]
SHOW USER FUNCTIONS
Lists all user-defined functions (UDFs) for which you have access privileges.
I prefer the spark sql way, and the default behavior is to show all functions,
meanwhile, users can also query specific kind functions by indicating the 'show
cope'.
What do all your other guys think?
> "SHOW FUNCTIONS" should include Flink built-in functions' names
> ---------------------------------------------------------------
>
> Key: FLINK-13741
> URL: https://issues.apache.org/jira/browse/FLINK-13741
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / API
> Affects Versions: 1.9.0
> Reporter: Bowen Li
> Assignee: Bowen Li
> Priority: Critical
> Labels: pull-request-available
> Fix For: 1.10.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Currently "SHOW FUNCTIONS;" only returns catalog functions and
> FunctionDefinitions registered in memory, but does not include Flink built-in
> functions' names.
> AFAIK, it's standard for "SHOW FUNCTIONS;" to show all available functions
> for use in queries in SQL systems like Hive, Presto, Teradata, etc, thus it
> includes built-in functions naturally. Besides,
> {{FunctionCatalog.lookupFunction(name)}} resolves calls to built-in
> functions, it's not feeling right to not displaying functions but can
> successfully resolve to them.
> It seems to me that the root cause is the call stack for "SHOW FUNCTIONS;"
> has been a bit messy - it calls {{tEnv.listUserDefinedFunctions()}} which
> further calls {{FunctionCatalog.getUserDefinedFunctions()}}, and I'm not sure
> what's the intention of those two APIs. Are they dedicated to getting all
> functions, or just user defined functions excluding built-in ones?
> In the end, I believe "SHOW FUNCTIONS;" should display built-in functions. To
> achieve that, we either need to modify and/or rename existing APIs mentioned
> above, or add new APIs to return all functions from FunctionCatalog.
> cc [~xuefuz] [~lirui] [~twalthr]
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)