diff options
author | Monty <monty@mariadb.org> | 2015-07-06 20:24:14 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2015-07-06 20:24:14 +0300 |
commit | 7332af49e4ce125a5e316e7e0c82d44df4af54c4 (patch) | |
tree | 179f863cbb314d7610bf12e1b0ffb785d6ea26e9 /sql/sql_udf.cc | |
parent | 8d4d185a08cd758d552d233c26f68af4caa28388 (diff) | |
download | mariadb-git-7332af49e4ce125a5e316e7e0c82d44df4af54c4.tar.gz |
- Renaming variables so that they don't shadow others (After this patch one can compile with -Wshadow and get much fewer warnings)
- Changed ER(ER_...) to ER_THD(thd, ER_...) when thd was known or if there was many calls to current_thd in the same function.
- Changed ER(ER_..) to ER_THD_OR_DEFAULT(current_thd, ER...) in some places where current_thd is not necessary defined.
- Removing calls to current_thd when we have access to thd
Part of this is optimization (not calling current_thd when not needed),
but part is bug fixing for error condition when current_thd is not defined
(For example on startup and end of mysqld)
Notable renames done as otherwise a lot of functions would have to be changed:
- In JOIN structure renamed:
examined_rows -> join_examined_rows
record_count -> join_record_count
- In Field, renamed new_field() to make_new_field()
Other things:
- Added DBUG_ASSERT(thd == tmp_thd) in Item_singlerow_subselect() just to be safe.
- Removed old 'tab' prefix in JOIN_TAB::save_explain_data() and use members directly
- Added 'thd' as argument to a few functions to avoid calling current_thd.
Diffstat (limited to 'sql/sql_udf.cc')
-rw-r--r-- | sql/sql_udf.cc | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index d266e8f6bc7..d962df6257d 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -90,10 +90,11 @@ static char *init_syms(udf_func *tmp, char *nm) */ if (!tmp->func_init && !tmp->func_deinit && tmp->type != UDFTYPE_AGGREGATE) { + THD *thd= current_thd; if (!opt_allow_suspicious_udfs) return nm; - if (current_thd->variables.log_warnings) - sql_print_warning(ER(ER_CANT_FIND_DL_ENTRY), nm); + if (thd->variables.log_warnings) + sql_print_warning(ER_THD(thd, ER_CANT_FIND_DL_ENTRY), nm); } return 0; } @@ -207,7 +208,7 @@ void udf_init() On windows we must check both FN_LIBCHAR and '/'. */ if (check_valid_path(dl_name, strlen(dl_name)) || - check_string_char_length(&name, "", NAME_CHAR_LEN, + check_string_char_length(&name, 0, NAME_CHAR_LEN, system_charset_info, 1)) { sql_print_error("Invalid row in mysql.func table for function '%.64s'", @@ -232,7 +233,8 @@ void udf_init() if (!(dl= dlopen(dlpath, RTLD_NOW))) { /* Print warning to log */ - sql_print_error(ER(ER_CANT_OPEN_LIBRARY), tmp->dl, errno, dlerror()); + sql_print_error(ER_THD(new_thd, ER_CANT_OPEN_LIBRARY), + tmp->dl, errno, dlerror()); /* Keep the udf in the hash so that we can remove it later */ continue; } @@ -243,7 +245,7 @@ void udf_init() char buf[SAFE_NAME_LEN+16], *missing; if ((missing= init_syms(tmp, buf))) { - sql_print_error(ER(ER_CANT_FIND_DL_ENTRY), missing); + sql_print_error(ER_THD(new_thd, ER_CANT_FIND_DL_ENTRY), missing); del_udf(tmp); if (new_dl) dlclose(dl); @@ -481,7 +483,8 @@ int mysql_create_function(THD *thd,udf_func *udf) udf->name.str, "UDFs are unavailable with the --skip-grant-tables option"); else - my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); + my_message(ER_OUT_OF_RESOURCES, ER_THD(thd, ER_OUT_OF_RESOURCES), + MYF(0)); DBUG_RETURN(1); } @@ -492,10 +495,10 @@ int mysql_create_function(THD *thd,udf_func *udf) */ if (check_valid_path(udf->dl, strlen(udf->dl))) { - my_message(ER_UDF_NO_PATHS, ER(ER_UDF_NO_PATHS), MYF(0)); + my_message(ER_UDF_NO_PATHS, ER_THD(thd, ER_UDF_NO_PATHS), MYF(0)); DBUG_RETURN(1); } - if (check_string_char_length(&udf->name, "", NAME_CHAR_LEN, + if (check_string_char_length(&udf->name, 0, NAME_CHAR_LEN, system_charset_info, 1)) { my_error(ER_TOO_LONG_IDENT, MYF(0), udf->name.str); @@ -519,7 +522,7 @@ int mysql_create_function(THD *thd,udf_func *udf) else if (thd->lex->create_info.if_not_exists()) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, ER_UDF_EXISTS, - ER(ER_UDF_EXISTS), udf->name.str); + ER_THD(thd, ER_UDF_EXISTS), udf->name.str); goto done; } @@ -615,7 +618,8 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) if (opt_noacl) my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), udf_name->str); else - my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); + my_message(ER_OUT_OF_RESOURCES, ER_THD(thd, ER_OUT_OF_RESOURCES), + MYF(0)); DBUG_RETURN(1); } @@ -631,7 +635,8 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) if (thd->lex->check_exists) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, - ER_FUNCTION_NOT_DEFINED, ER(ER_FUNCTION_NOT_DEFINED), + ER_FUNCTION_NOT_DEFINED, + ER_THD(thd, ER_FUNCTION_NOT_DEFINED), udf_name->str); goto done; } |