diff options
author | Aleksey Midenkov <midenok@gmail.com> | 2017-11-07 00:37:49 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2017-11-07 00:37:49 +0300 |
commit | d8d725101992d50b00edf149e7ccd7f720b850dc (patch) | |
tree | 5797a3c9af2d2db487ec77093608f89b7dabe62f /sql/item_create.cc | |
parent | 835cbbcc7b797188a89671019f2b2844e1a14e0c (diff) | |
parent | ce66d5b2a53d76d286e8443807c4ebd7743cc354 (diff) | |
download | mariadb-git-d8d725101992d50b00edf149e7ccd7f720b850dc.tar.gz |
System Versioning pre0.12
Merge remote-tracking branch 'origin/archive/2017-10-17' into 10.3
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 51 |
1 files changed, 10 insertions, 41 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index 5d6d9742c7a..d73a5327d25 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -43,38 +43,6 @@ */ /** - Adapter for native functions with a variable number of arguments. - The main use of this class is to discard the following calls: - <code>foo(expr1 AS name1, expr2 AS name2, ...)</code> - which are syntactically correct (the syntax can refer to a UDF), - but semantically invalid for native functions. -*/ - -class Create_native_func : public Create_func -{ -public: - virtual Item *create_func(THD *thd, LEX_CSTRING *name, - List<Item> *item_list); - - /** - Builder method, with no arguments. - @param thd The current thread - @param name The native function name - @param item_list The function parameters, none of which are named - @return An item representing the function call - */ - virtual Item *create_native(THD *thd, LEX_CSTRING *name, - List<Item> *item_list) = 0; - -protected: - /** Constructor. */ - Create_native_func() {} - /** Destructor. */ - virtual ~Create_native_func() {} -}; - - -/** Adapter for functions that takes exactly zero arguments. */ @@ -6827,12 +6795,6 @@ Create_func_year_week::create_native(THD *thd, LEX_CSTRING *name, } -struct Native_func_registry -{ - LEX_CSTRING name; - Create_func *builder; -}; - #define BUILDER(F) & F::s_singleton #ifdef HAVE_SPATIAL @@ -7218,8 +7180,6 @@ get_native_fct_hash_key(const uchar *buff, size_t *length, int item_create_init() { - Native_func_registry *func; - DBUG_ENTER("item_create_init"); if (my_hash_init(& native_functions_hash, @@ -7232,7 +7192,16 @@ int item_create_init() MYF(0))) DBUG_RETURN(1); - for (func= func_array; func->builder != NULL; func++) + DBUG_RETURN(item_create_append(func_array)); +} + +int item_create_append(Native_func_registry array[]) +{ + Native_func_registry *func; + + DBUG_ENTER("item_create_append"); + + for (func= array; func->builder != NULL; func++) { if (my_hash_insert(& native_functions_hash, (uchar*) func)) DBUG_RETURN(1); |