diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2018-11-20 10:58:34 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2018-11-27 14:33:39 +0100 |
commit | 555921a9c3ddcd638e7f08ea117738640e300875 (patch) | |
tree | e6cbc156d1fc1424f1d2356810e3a82604167199 /sql/sql_udf.cc | |
parent | a956260d826650f0a35779621c5987dc30f7ba04 (diff) | |
download | mariadb-git-555921a9c3ddcd638e7f08ea117738640e300875.tar.gz |
MDEV-15073: Generic UDAF parser code in server for windows functions
Added support for usual agreggate UDF (UDAF)
Added remove() call support for more efficient window function processing
Added example of aggregate UDF with efficient windows function support
Diffstat (limited to 'sql/sql_udf.cc')
-rw-r--r-- | sql/sql_udf.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 9a036156de6..aee4869bd40 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -76,6 +76,8 @@ static const char *init_syms(udf_func *tmp, char *nm) (void)strmov(end, "_add"); if (!((tmp->func_add= (Udf_func_add) dlsym(tmp->dlhandle, nm)))) return nm; + (void)strmov(end, "_remove"); + tmp->func_remove= (Udf_func_add) dlsym(tmp->dlhandle, nm); } (void) strmov(end,"_deinit"); @@ -565,6 +567,7 @@ int mysql_create_function(THD *thd,udf_func *udf) u_d->func_deinit= udf->func_deinit; u_d->func_clear= udf->func_clear; u_d->func_add= udf->func_add; + u_d->func_remove= udf->func_remove; /* create entry in mysql.func table */ |