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
> >
>

Reply via email to