Hi Quanlong, Thanks for your advice. I think it's a good way. But there were hundreds of queries at least persistenced in scripts. It's unfriendly to let customers change queries. So we have no choice but to be compatible.
If I add a global flag, --global_function_database_name="util_db". In https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/analysis/FunctionName.java#L126 First find the function function name in _impala_builtins, then find function name in global_function_database_name, at last find in analyzer. getDefaultDb(). I test it works. What do you think? Regards, Xiaoqing Quanlong Huang <huangquanl...@gmail.com> 于2022年11月8日周二 14:32写道: > Hi Xiaoqing, > > Thanks for raising this request! This requires creating a "_impala_global" > database in Hive when installing Impala, since each function is associated > with a db in HMS. Also need planner changes in resolving function names. > > Why not just create these "global" UDFs in a util db and use their fully > qualified names (<database>.<func>)? Queries won't be lengthy if a short db > name is used. > > Regards, > Quanlong > > On Mon, Nov 7, 2022 at 4:42 PM xiaoqing gao <gaoxq...@gmail.com> wrote: > > > Hi team! > > When I execute the CREATE FUNCTION statement, It can only work on one > > database that I specified. > > I hope to support a feature when I execute the following statement, it > can > > work on all databases. The Syntax: > > CREATE GLOBAL FUNCTION [IF NOT EXISTS] > [db_name.]function_name([arg_type[, > > arg_type...]) > > RETURNS return_type > > LOCATION 'hdfs_path_to_dot_so' > > SYMBOL='symbol_name' > > > > It'll need a default database named _impala_global. The global function > > will be related to _impala_global. > > > > Do you have any ideas? > > > > Best Regards, > > Xiaoqing Gao > > >