diff options
author | Monty <monty@mariadb.org> | 2017-04-23 19:39:57 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2017-04-23 22:35:46 +0300 |
commit | 5a759d31f766087d5e135e1d3d3d987693bc9b88 (patch) | |
tree | 93c7359e8b211e269bfa73e5f595f34b9dca575a /sql/item_create.cc | |
parent | cba84469eb96481568a9f4ddf3f2989c49c9294c (diff) | |
download | mariadb-git-5a759d31f766087d5e135e1d3d3d987693bc9b88.tar.gz |
Changing field::field_name and Item::name to LEX_CSTRING
Benefits of this patch:
- Removed a lot of calls to strlen(), especially for field_string
- Strings generated by parser are now const strings, less chance of
accidently changing a string
- Removed a lot of calls with LEX_STRING as parameter (changed to pointer)
- More uniform code
- Item::name_length was not kept up to date. Now fixed
- Several bugs found and fixed (Access to null pointers,
access of freed memory, wrong arguments to printf like functions)
- Removed a lot of casts from (const char*) to (char*)
Changes:
- This caused some ABI changes
- lex_string_set now uses LEX_CSTRING
- Some fucntions are now taking const char* instead of char*
- Create_field::change and after changed to LEX_CSTRING
- handler::connect_string, comment and engine_name() changed to LEX_CSTRING
- Checked printf() related calls to find bugs. Found and fixed several
errors in old code.
- A lot of changes from LEX_STRING to LEX_CSTRING, especially related to
parsing and events.
- Some changes from LEX_STRING and LEX_STRING & to LEX_CSTRING*
- Some changes for char* to const char*
- Added printf argument checking for my_snprintf()
- Introduced null_clex_str, star_clex_string, temp_lex_str to simplify
code
- Added item_empty_name and item_used_name to be able to distingush between
items that was given an empty name and items that was not given a name
This is used in sql_yacc.yy to know when to give an item a name.
- select table_name."*' is not anymore same as table_name.*
- removed not used function Item::rename()
- Added comparision of item->name_length before some calls to
my_strcasecmp() to speed up comparison
- Moved Item_sp_variable::make_field() from item.h to item.cc
- Some minimal code changes to avoid copying to const char *
- Fixed wrong error message in wsrep_mysql_parse()
- Fixed wrong code in find_field_in_natural_join() where real_item() was
set when it shouldn't
- ER_ERROR_ON_RENAME was used with extra arguments.
- Removed some (wrong) ER_OUTOFMEMORY, as alloc_root will already
give the error.
TODO:
- Check possible unsafe casts in plugin/auth_examples/qa_auth_interface.c
- Change code to not modify LEX_CSTRING for database name
(as part of lower_case_table_names)
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 338 |
1 files changed, 170 insertions, 168 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index 6eb0aac3e4c..305f62a04b1 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -44,8 +44,8 @@ static const char* item_name(Item *a, String *str) { - if (a->name) - return a->name; + if (a->name.str) + return a->name.str; str->length(0); a->print(str, QT_ORDINARY); return str->c_ptr_safe(); @@ -115,7 +115,8 @@ bool get_length_and_scale(ulonglong length, ulonglong decimals, class Create_native_func : public Create_func { public: - virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_func(THD *thd, LEX_CSTRING *name, + List<Item> *item_list); /** Builder method, with no arguments. @@ -124,7 +125,7 @@ public: @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_STRING name, + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) = 0; protected: @@ -142,7 +143,8 @@ protected: class Create_func_arg0 : public Create_func { public: - virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_func(THD *thd, LEX_CSTRING *name, + List<Item> *item_list); /** Builder method, with no arguments. @@ -166,7 +168,7 @@ protected: class Create_func_arg1 : public Create_func { public: - virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list); /** Builder method, with one argument. @@ -191,7 +193,7 @@ protected: class Create_func_arg2 : public Create_func { public: - virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list); /** Builder method, with two arguments. @@ -217,7 +219,7 @@ protected: class Create_func_arg3 : public Create_func { public: - virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list); /** Builder method, with three arguments. @@ -244,7 +246,7 @@ protected: class Create_sp_func : public Create_qfunc { public: - virtual Item *create_with_db(THD *thd, LEX_STRING db, LEX_STRING name, + virtual Item *create_with_db(THD *thd, LEX_CSTRING *db, LEX_CSTRING *name, bool use_explicit_name, List<Item> *item_list); static Create_sp_func s_singleton; @@ -267,7 +269,7 @@ protected: class Create_func_no_geom : public Create_func { public: - virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list); /** Singleton. */ static Create_func_no_geom s_singleton; @@ -413,7 +415,7 @@ protected: class Create_func_atan : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_atan s_singleton; @@ -634,7 +636,7 @@ protected: class Create_func_concat : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_concat s_singleton; @@ -647,7 +649,7 @@ protected: class Create_func_concat_operator_oracle : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_concat_operator_oracle s_singleton; @@ -673,7 +675,7 @@ protected: class Create_func_concat_ws : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_concat_ws s_singleton; @@ -911,7 +913,7 @@ protected: class Create_func_des_decrypt : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_des_decrypt s_singleton; @@ -924,7 +926,7 @@ protected: class Create_func_des_encrypt : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_des_encrypt s_singleton; @@ -993,7 +995,7 @@ class Create_func_distance : public Create_func_arg2 class Create_func_elt : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_elt s_singleton; @@ -1019,7 +1021,7 @@ protected: class Create_func_encrypt : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_encrypt s_singleton; @@ -1115,7 +1117,7 @@ protected: class Create_func_export_set : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_export_set s_singleton; @@ -1143,7 +1145,7 @@ protected: class Create_func_field : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_field s_singleton; @@ -1182,7 +1184,7 @@ protected: class Create_func_format : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_format s_singleton; @@ -1234,7 +1236,7 @@ protected: class Create_func_from_unixtime : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_from_unixtime s_singleton; @@ -1248,7 +1250,7 @@ protected: class Create_func_geometry_from_text : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_geometry_from_text s_singleton; @@ -1263,7 +1265,7 @@ protected: class Create_func_geometry_from_wkb : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_geometry_from_wkb s_singleton; @@ -1278,7 +1280,7 @@ protected: class Create_func_geometry_from_json : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_geometry_from_json s_singleton; @@ -1291,7 +1293,7 @@ protected: class Create_func_as_geojson : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_as_geojson s_singleton; @@ -1378,7 +1380,7 @@ protected: class Create_func_greatest : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_greatest s_singleton; @@ -1804,7 +1806,7 @@ protected: class Create_func_json_detailed: public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_detailed s_singleton; @@ -1869,7 +1871,7 @@ protected: class Create_func_json_keys: public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_keys s_singleton; @@ -1882,7 +1884,7 @@ protected: class Create_func_json_contains: public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_contains s_singleton; @@ -1895,7 +1897,7 @@ protected: class Create_func_json_contains_path : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_contains_path s_singleton; @@ -1908,7 +1910,7 @@ protected: class Create_func_json_extract : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_extract s_singleton; @@ -1921,7 +1923,7 @@ protected: class Create_func_json_search : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_search s_singleton; @@ -1934,7 +1936,7 @@ protected: class Create_func_json_array : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_array s_singleton; @@ -1947,7 +1949,7 @@ protected: class Create_func_json_array_append : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_array_append s_singleton; @@ -1960,7 +1962,7 @@ protected: class Create_func_json_array_insert : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_array_insert s_singleton; @@ -1973,7 +1975,7 @@ protected: class Create_func_json_insert : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_insert s_singleton; @@ -1986,7 +1988,7 @@ protected: class Create_func_json_set : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_set s_singleton; @@ -1999,7 +2001,7 @@ protected: class Create_func_json_replace : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_replace s_singleton; @@ -2012,7 +2014,7 @@ protected: class Create_func_json_remove : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_remove s_singleton; @@ -2025,7 +2027,7 @@ protected: class Create_func_json_object : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_object s_singleton; @@ -2038,7 +2040,7 @@ protected: class Create_func_json_length : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_length s_singleton; @@ -2051,7 +2053,7 @@ protected: class Create_func_json_merge : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_json_merge s_singleton; @@ -2103,7 +2105,7 @@ protected: class Create_func_last_insert_id : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_last_insert_id s_singleton; @@ -2129,7 +2131,7 @@ protected: class Create_func_least : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_least s_singleton; @@ -2209,7 +2211,7 @@ protected: class Create_func_locate : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_locate s_singleton; @@ -2222,7 +2224,7 @@ protected: class Create_func_log : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_log s_singleton; @@ -2313,7 +2315,7 @@ protected: class Create_func_make_set : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_make_set s_singleton; @@ -2326,7 +2328,7 @@ protected: class Create_func_master_pos_wait : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_master_pos_wait s_singleton; @@ -2339,7 +2341,7 @@ protected: class Create_func_master_gtid_wait : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_master_gtid_wait s_singleton; @@ -2635,7 +2637,7 @@ protected: class Create_func_rand : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_rand s_singleton; @@ -2674,7 +2676,7 @@ protected: class Create_func_round : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_round s_singleton; @@ -3069,7 +3071,7 @@ protected: class Create_func_unix_timestamp : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_unix_timestamp s_singleton; @@ -3231,7 +3233,7 @@ protected: class Create_func_year_week : public Create_native_func { public: - virtual Item *create_native(THD *thd, LEX_STRING name, List<Item> *item_list); + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); static Create_func_year_week s_singleton; @@ -3275,7 +3277,7 @@ Create_func_no_geom Create_func_no_geom::s_singleton; Item* Create_func_no_geom::create_func(THD * /* unused */, - LEX_STRING /* unused */, + LEX_CSTRING /* unused */, List<Item> * /* unused */) { /* FIXME: error message can't be translated. */ @@ -3287,9 +3289,9 @@ Create_func_no_geom::create_func(THD * /* unused */, Item* -Create_qfunc::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_qfunc::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { - LEX_STRING db; + LEX_CSTRING db; if (! thd->db && ! thd->lex->sphead) { @@ -3305,14 +3307,14 @@ Create_qfunc::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) the case when a default database exist, see Create_sp_func::create(). */ my_error(ER_SP_DOES_NOT_EXIST, MYF(0), - "FUNCTION", name.str); + "FUNCTION", name->str); return NULL; } if (thd->lex->copy_db_to(&db.str, &db.length)) return NULL; - return create_with_db(thd, db, name, false, item_list); + return create_with_db(thd, &db, name, false, item_list); } @@ -3320,9 +3322,9 @@ Create_qfunc::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) Create_udf_func Create_udf_func::s_singleton; Item* -Create_udf_func::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_udf_func::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { - udf_func *udf= find_udf(name.str, name.length); + udf_func *udf= find_udf(name->str, name->length); DBUG_ASSERT(udf); return create(thd, udf, item_list); } @@ -3430,7 +3432,7 @@ Create_udf_func::create(THD *thd, udf_func *udf, List<Item> *item_list) Create_sp_func Create_sp_func::s_singleton; Item* -Create_sp_func::create_with_db(THD *thd, LEX_STRING db, LEX_STRING name, +Create_sp_func::create_with_db(THD *thd, LEX_CSTRING *db, LEX_CSTRING *name, bool use_explicit_name, List<Item> *item_list) { int arg_count= 0; @@ -3449,7 +3451,7 @@ Create_sp_func::create_with_db(THD *thd, LEX_STRING db, LEX_STRING name, because it can refer to a User Defined Function call. For a Stored Function however, this has no semantic. */ - my_error(ER_WRONG_PARAMETERS_TO_STORED_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMETERS_TO_STORED_FCT, MYF(0), name->str); return NULL; } @@ -3471,11 +3473,11 @@ Create_sp_func::create_with_db(THD *thd, LEX_STRING db, LEX_STRING name, Item* -Create_native_func::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_native_func::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { if (has_named_parameters(item_list)) { - my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3484,7 +3486,7 @@ Create_native_func::create_func(THD *thd, LEX_STRING name, List<Item> *item_list Item* -Create_func_arg0::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_func_arg0::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3493,7 +3495,7 @@ Create_func_arg0::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) if (arg_count != 0) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3502,7 +3504,7 @@ Create_func_arg0::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) Item* -Create_func_arg1::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_func_arg1::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3511,7 +3513,7 @@ Create_func_arg1::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) if (arg_count != 1) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3519,7 +3521,7 @@ Create_func_arg1::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) if (! param_1->is_autogenerated_name) { - my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3528,7 +3530,7 @@ Create_func_arg1::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) Item* -Create_func_arg2::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_func_arg2::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3537,7 +3539,7 @@ Create_func_arg2::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) if (arg_count != 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3547,7 +3549,7 @@ Create_func_arg2::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) if ( (! param_1->is_autogenerated_name) || (! param_2->is_autogenerated_name)) { - my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3556,7 +3558,7 @@ Create_func_arg2::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) Item* -Create_func_arg3::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) +Create_func_arg3::create_func(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3565,7 +3567,7 @@ Create_func_arg3::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) if (arg_count != 3) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3577,7 +3579,7 @@ Create_func_arg3::create_func(THD *thd, LEX_STRING name, List<Item> *item_list) || (! param_2->is_autogenerated_name) || (! param_3->is_autogenerated_name)) { - my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMETERS_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3675,7 +3677,7 @@ Create_func_asin::create_1_arg(THD *thd, Item *arg1) Create_func_atan Create_func_atan::s_singleton; Item* -Create_func_atan::create_native(THD *thd, LEX_STRING name, +Create_func_atan::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item* func= NULL; @@ -3700,7 +3702,7 @@ Create_func_atan::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -3856,7 +3858,7 @@ Create_func_dyncol_json::create_1_arg(THD *thd, Item *arg1) Create_func_concat Create_func_concat::s_singleton; Item* -Create_func_concat::create_native(THD *thd, LEX_STRING name, +Create_func_concat::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3866,7 +3868,7 @@ Create_func_concat::create_native(THD *thd, LEX_STRING name, if (arg_count < 1) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3879,7 +3881,7 @@ Create_func_concat_operator_oracle Create_func_concat_operator_oracle::s_singleton; Item* -Create_func_concat_operator_oracle::create_native(THD *thd, LEX_STRING name, +Create_func_concat_operator_oracle::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3889,7 +3891,7 @@ Create_func_concat_operator_oracle::create_native(THD *thd, LEX_STRING name, if (arg_count < 1) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -3907,7 +3909,7 @@ Create_func_decode_histogram::create_2_arg(THD *thd, Item *arg1, Item *arg2) Create_func_concat_ws Create_func_concat_ws::s_singleton; Item* -Create_func_concat_ws::create_native(THD *thd, LEX_STRING name, +Create_func_concat_ws::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -3918,7 +3920,7 @@ Create_func_concat_ws::create_native(THD *thd, LEX_STRING name, /* "WS" stands for "With Separator": this function takes 2+ arguments */ if (arg_count < 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -4103,7 +4105,7 @@ Create_func_degrees::create_1_arg(THD *thd, Item *arg1) Create_func_des_decrypt Create_func_des_decrypt::s_singleton; Item* -Create_func_des_decrypt::create_native(THD *thd, LEX_STRING name, +Create_func_des_decrypt::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4128,7 +4130,7 @@ Create_func_des_decrypt::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4140,7 +4142,7 @@ Create_func_des_decrypt::create_native(THD *thd, LEX_STRING name, Create_func_des_encrypt Create_func_des_encrypt::s_singleton; Item* -Create_func_des_encrypt::create_native(THD *thd, LEX_STRING name, +Create_func_des_encrypt::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4165,7 +4167,7 @@ Create_func_des_encrypt::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4219,7 +4221,7 @@ Create_func_distance::create_2_arg(THD *thd, Item *arg1, Item *arg2) Create_func_elt Create_func_elt::s_singleton; Item* -Create_func_elt::create_native(THD *thd, LEX_STRING name, +Create_func_elt::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -4229,7 +4231,7 @@ Create_func_elt::create_native(THD *thd, LEX_STRING name, if (arg_count < 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -4249,7 +4251,7 @@ Create_func_encode::create_2_arg(THD *thd, Item *arg1, Item *arg2) Create_func_encrypt Create_func_encrypt::s_singleton; Item* -Create_func_encrypt::create_native(THD *thd, LEX_STRING name, +Create_func_encrypt::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4275,7 +4277,7 @@ Create_func_encrypt::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4350,7 +4352,7 @@ Create_func_exp::create_1_arg(THD *thd, Item *arg1) Create_func_export_set Create_func_export_set::s_singleton; Item* -Create_func_export_set::create_native(THD *thd, LEX_STRING name, +Create_func_export_set::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4391,7 +4393,7 @@ Create_func_export_set::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4415,7 +4417,7 @@ Create_func_exteriorring::create_1_arg(THD *thd, Item *arg1) Create_func_field Create_func_field::s_singleton; Item* -Create_func_field::create_native(THD *thd, LEX_STRING name, +Create_func_field::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -4425,7 +4427,7 @@ Create_func_field::create_native(THD *thd, LEX_STRING name, if (arg_count < 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -4454,7 +4456,7 @@ Create_func_floor::create_1_arg(THD *thd, Item *arg1) Create_func_format Create_func_format::s_singleton; Item* -Create_func_format::create_native(THD *thd, LEX_STRING name, +Create_func_format::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4477,7 +4479,7 @@ Create_func_format::create_native(THD *thd, LEX_STRING name, break; } default: - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } @@ -4519,7 +4521,7 @@ Create_func_from_days::create_1_arg(THD *thd, Item *arg1) Create_func_from_unixtime Create_func_from_unixtime::s_singleton; Item* -Create_func_from_unixtime::create_native(THD *thd, LEX_STRING name, +Create_func_from_unixtime::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4545,7 +4547,7 @@ Create_func_from_unixtime::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4558,7 +4560,7 @@ Create_func_from_unixtime::create_native(THD *thd, LEX_STRING name, Create_func_geometry_from_text Create_func_geometry_from_text::s_singleton; Item* -Create_func_geometry_from_text::create_native(THD *thd, LEX_STRING name, +Create_func_geometry_from_text::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4584,7 +4586,7 @@ Create_func_geometry_from_text::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4598,7 +4600,7 @@ Create_func_geometry_from_text::create_native(THD *thd, LEX_STRING name, Create_func_geometry_from_wkb Create_func_geometry_from_wkb::s_singleton; Item* -Create_func_geometry_from_wkb::create_native(THD *thd, LEX_STRING name, +Create_func_geometry_from_wkb::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4624,7 +4626,7 @@ Create_func_geometry_from_wkb::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4638,7 +4640,7 @@ Create_func_geometry_from_wkb::create_native(THD *thd, LEX_STRING name, Create_func_geometry_from_json Create_func_geometry_from_json::s_singleton; Item* -Create_func_geometry_from_json::create_native(THD *thd, LEX_STRING name, +Create_func_geometry_from_json::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4673,7 +4675,7 @@ Create_func_geometry_from_json::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4685,7 +4687,7 @@ Create_func_geometry_from_json::create_native(THD *thd, LEX_STRING name, Create_func_as_geojson Create_func_as_geojson::s_singleton; Item* -Create_func_as_geojson::create_native(THD *thd, LEX_STRING name, +Create_func_as_geojson::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -4719,7 +4721,7 @@ Create_func_as_geojson::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -4788,7 +4790,7 @@ Create_func_glength::create_1_arg(THD *thd, Item *arg1) Create_func_greatest Create_func_greatest::s_singleton; Item* -Create_func_greatest::create_native(THD *thd, LEX_STRING name, +Create_func_greatest::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -4798,7 +4800,7 @@ Create_func_greatest::create_native(THD *thd, LEX_STRING name, if (arg_count < 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -5080,7 +5082,7 @@ Create_func_json_exists::create_2_arg(THD *thd, Item *arg1, Item *arg2) Create_func_json_detailed Create_func_json_detailed::s_singleton; Item* -Create_func_json_detailed::create_native(THD *thd, LEX_STRING name, +Create_func_json_detailed::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5091,7 +5093,7 @@ Create_func_json_detailed::create_native(THD *thd, LEX_STRING name, if (arg_count < 1 || arg_count > 2 /* json_doc, [path]...*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5197,7 +5199,7 @@ Create_func_last_day::create_1_arg(THD *thd, Item *arg1) Create_func_json_array Create_func_json_array::s_singleton; Item* -Create_func_json_array::create_native(THD *thd, LEX_STRING name, +Create_func_json_array::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func; @@ -5218,7 +5220,7 @@ Create_func_json_array::create_native(THD *thd, LEX_STRING name, Create_func_json_array_append Create_func_json_array_append::s_singleton; Item* -Create_func_json_array_append::create_native(THD *thd, LEX_STRING name, +Create_func_json_array_append::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5229,7 +5231,7 @@ Create_func_json_array_append::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 || (arg_count & 1) == 0 /*is even*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5243,7 +5245,7 @@ Create_func_json_array_append::create_native(THD *thd, LEX_STRING name, Create_func_json_array_insert Create_func_json_array_insert::s_singleton; Item* -Create_func_json_array_insert::create_native(THD *thd, LEX_STRING name, +Create_func_json_array_insert::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5254,7 +5256,7 @@ Create_func_json_array_insert::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 || (arg_count & 1) == 0 /*is even*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5268,7 +5270,7 @@ Create_func_json_array_insert::create_native(THD *thd, LEX_STRING name, Create_func_json_insert Create_func_json_insert::s_singleton; Item* -Create_func_json_insert::create_native(THD *thd, LEX_STRING name, +Create_func_json_insert::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5279,7 +5281,7 @@ Create_func_json_insert::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 || (arg_count & 1) == 0 /*is even*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5294,7 +5296,7 @@ Create_func_json_insert::create_native(THD *thd, LEX_STRING name, Create_func_json_set Create_func_json_set::s_singleton; Item* -Create_func_json_set::create_native(THD *thd, LEX_STRING name, +Create_func_json_set::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5305,7 +5307,7 @@ Create_func_json_set::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 || (arg_count & 1) == 0 /*is even*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5320,7 +5322,7 @@ Create_func_json_set::create_native(THD *thd, LEX_STRING name, Create_func_json_replace Create_func_json_replace::s_singleton; Item* -Create_func_json_replace::create_native(THD *thd, LEX_STRING name, +Create_func_json_replace::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5331,7 +5333,7 @@ Create_func_json_replace::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 || (arg_count & 1) == 0 /*is even*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5346,7 +5348,7 @@ Create_func_json_replace::create_native(THD *thd, LEX_STRING name, Create_func_json_remove Create_func_json_remove::s_singleton; Item* -Create_func_json_remove::create_native(THD *thd, LEX_STRING name, +Create_func_json_remove::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5357,7 +5359,7 @@ Create_func_json_remove::create_native(THD *thd, LEX_STRING name, if (arg_count < 2 /*json_doc, path [,path]*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5371,7 +5373,7 @@ Create_func_json_remove::create_native(THD *thd, LEX_STRING name, Create_func_json_object Create_func_json_object::s_singleton; Item* -Create_func_json_object::create_native(THD *thd, LEX_STRING name, +Create_func_json_object::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func; @@ -5382,7 +5384,7 @@ Create_func_json_object::create_native(THD *thd, LEX_STRING name, arg_count= item_list->elements; if ((arg_count & 1) != 0 /*is odd*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); func= NULL; } else @@ -5403,7 +5405,7 @@ Create_func_json_object::create_native(THD *thd, LEX_STRING name, Create_func_json_length Create_func_json_length::s_singleton; Item* -Create_func_json_length::create_native(THD *thd, LEX_STRING name, +Create_func_json_length::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func; @@ -5412,7 +5414,7 @@ Create_func_json_length::create_native(THD *thd, LEX_STRING name, if (item_list == NULL || (arg_count= item_list->elements) == 0) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); func= NULL; } else @@ -5427,7 +5429,7 @@ Create_func_json_length::create_native(THD *thd, LEX_STRING name, Create_func_json_merge Create_func_json_merge::s_singleton; Item* -Create_func_json_merge::create_native(THD *thd, LEX_STRING name, +Create_func_json_merge::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func; @@ -5436,7 +5438,7 @@ Create_func_json_merge::create_native(THD *thd, LEX_STRING name, if (item_list == NULL || (arg_count= item_list->elements) < 2) // json, json { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); func= NULL; } else @@ -5451,7 +5453,7 @@ Create_func_json_merge::create_native(THD *thd, LEX_STRING name, Create_func_json_contains Create_func_json_contains::s_singleton; Item* -Create_func_json_contains::create_native(THD *thd, LEX_STRING name, +Create_func_json_contains::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5466,7 +5468,7 @@ Create_func_json_contains::create_native(THD *thd, LEX_STRING name, } else { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } return func; @@ -5476,7 +5478,7 @@ Create_func_json_contains::create_native(THD *thd, LEX_STRING name, Create_func_json_keys Create_func_json_keys::s_singleton; Item* -Create_func_json_keys::create_native(THD *thd, LEX_STRING name, +Create_func_json_keys::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5487,7 +5489,7 @@ Create_func_json_keys::create_native(THD *thd, LEX_STRING name, if (arg_count < 1 || arg_count > 2 /* json_doc, [path]...*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5501,7 +5503,7 @@ Create_func_json_keys::create_native(THD *thd, LEX_STRING name, Create_func_json_contains_path Create_func_json_contains_path::s_singleton; Item* -Create_func_json_contains_path::create_native(THD *thd, LEX_STRING name, +Create_func_json_contains_path::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5512,7 +5514,7 @@ Create_func_json_contains_path::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 /* json_doc, one_or_all, path, [path]...*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5526,7 +5528,7 @@ Create_func_json_contains_path::create_native(THD *thd, LEX_STRING name, Create_func_json_extract Create_func_json_extract::s_singleton; Item* -Create_func_json_extract::create_native(THD *thd, LEX_STRING name, +Create_func_json_extract::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5537,7 +5539,7 @@ Create_func_json_extract::create_native(THD *thd, LEX_STRING name, if (arg_count < 2 /* json_doc, path, [path]...*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5551,7 +5553,7 @@ Create_func_json_extract::create_native(THD *thd, LEX_STRING name, Create_func_json_search Create_func_json_search::s_singleton; Item* -Create_func_json_search::create_native(THD *thd, LEX_STRING name, +Create_func_json_search::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5562,7 +5564,7 @@ Create_func_json_search::create_native(THD *thd, LEX_STRING name, if (arg_count < 3 /* json_doc, one_or_all, search_str, [escape_char[, path]...*/) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); } else { @@ -5576,7 +5578,7 @@ Create_func_json_search::create_native(THD *thd, LEX_STRING name, Create_func_last_insert_id Create_func_last_insert_id::s_singleton; Item* -Create_func_last_insert_id::create_native(THD *thd, LEX_STRING name, +Create_func_last_insert_id::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5601,7 +5603,7 @@ Create_func_last_insert_id::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -5622,7 +5624,7 @@ Create_func_lcase::create_1_arg(THD *thd, Item *arg1) Create_func_least Create_func_least::s_singleton; Item* -Create_func_least::create_native(THD *thd, LEX_STRING name, +Create_func_least::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -5632,7 +5634,7 @@ Create_func_least::create_native(THD *thd, LEX_STRING name, if (arg_count < 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -5693,7 +5695,7 @@ Create_func_load_file::create_1_arg(THD *thd, Item *arg1) Create_func_locate Create_func_locate::s_singleton; Item* -Create_func_locate::create_native(THD *thd, LEX_STRING name, +Create_func_locate::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5722,7 +5724,7 @@ Create_func_locate::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -5734,7 +5736,7 @@ Create_func_locate::create_native(THD *thd, LEX_STRING name, Create_func_log Create_func_log::s_singleton; Item* -Create_func_log::create_native(THD *thd, LEX_STRING name, +Create_func_log::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5759,7 +5761,7 @@ Create_func_log::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -5825,7 +5827,7 @@ Create_func_maketime::create_3_arg(THD *thd, Item *arg1, Item *arg2, Item *arg3) Create_func_make_set Create_func_make_set::s_singleton; Item* -Create_func_make_set::create_native(THD *thd, LEX_STRING name, +Create_func_make_set::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { int arg_count= 0; @@ -5835,7 +5837,7 @@ Create_func_make_set::create_native(THD *thd, LEX_STRING name, if (arg_count < 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return NULL; } @@ -5846,7 +5848,7 @@ Create_func_make_set::create_native(THD *thd, LEX_STRING name, Create_func_master_pos_wait Create_func_master_pos_wait::s_singleton; Item* -Create_func_master_pos_wait::create_native(THD *thd, LEX_STRING name, +Create_func_master_pos_wait::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { @@ -5860,7 +5862,7 @@ Create_func_master_pos_wait::create_native(THD *thd, LEX_STRING name, if (arg_count < 2 || arg_count > 4) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return func; } @@ -5897,7 +5899,7 @@ Create_func_master_pos_wait::create_native(THD *thd, LEX_STRING name, Create_func_master_gtid_wait Create_func_master_gtid_wait::s_singleton; Item* -Create_func_master_gtid_wait::create_native(THD *thd, LEX_STRING name, +Create_func_master_gtid_wait::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -5910,7 +5912,7 @@ Create_func_master_gtid_wait::create_native(THD *thd, LEX_STRING name, if (arg_count < 1 || arg_count > 2) { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); return func; } @@ -6143,7 +6145,7 @@ Create_func_radians::create_1_arg(THD *thd, Item *arg1) Create_func_rand Create_func_rand::s_singleton; Item* -Create_func_rand::create_native(THD *thd, LEX_STRING name, +Create_func_rand::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -6181,7 +6183,7 @@ Create_func_rand::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -6213,7 +6215,7 @@ Create_func_reverse::create_1_arg(THD *thd, Item *arg1) Create_func_round Create_func_round::s_singleton; Item* -Create_func_round::create_native(THD *thd, LEX_STRING name, +Create_func_round::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -6239,7 +6241,7 @@ Create_func_round::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -6522,7 +6524,7 @@ Create_func_unhex::create_1_arg(THD *thd, Item *arg1) Create_func_unix_timestamp Create_func_unix_timestamp::s_singleton; Item* -Create_func_unix_timestamp::create_native(THD *thd, LEX_STRING name, +Create_func_unix_timestamp::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -6546,7 +6548,7 @@ Create_func_unix_timestamp::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -6677,7 +6679,7 @@ Create_func_y::create_1_arg(THD *thd, Item *arg1) Create_func_year_week Create_func_year_week::s_singleton; Item* -Create_func_year_week::create_native(THD *thd, LEX_STRING name, +Create_func_year_week::create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list) { Item *func= NULL; @@ -6703,7 +6705,7 @@ Create_func_year_week::create_native(THD *thd, LEX_STRING name, } default: { - my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); break; } } @@ -6714,7 +6716,7 @@ Create_func_year_week::create_native(THD *thd, LEX_STRING name, struct Native_func_registry { - LEX_STRING name; + LEX_CSTRING name; Create_func *builder; }; @@ -7143,15 +7145,15 @@ void item_create_cleanup() } Create_func * -find_native_function_builder(THD *thd, LEX_STRING name) +find_native_function_builder(THD *thd, const LEX_CSTRING *name) { Native_func_registry *func; Create_func *builder= NULL; /* Thread safe */ - func= (Native_func_registry*) my_hash_search(& native_functions_hash, - (uchar*) name.str, - name.length); + func= (Native_func_registry*) my_hash_search(&native_functions_hash, + (uchar*) name->str, + name->length); if (func) { |