summaryrefslogtreecommitdiff
path: root/sql/sql_udf.cc
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2015-07-06 20:24:14 +0300
committerMonty <monty@mariadb.org>2015-07-06 20:24:14 +0300
commit7332af49e4ce125a5e316e7e0c82d44df4af54c4 (patch)
tree179f863cbb314d7610bf12e1b0ffb785d6ea26e9 /sql/sql_udf.cc
parent8d4d185a08cd758d552d233c26f68af4caa28388 (diff)
downloadmariadb-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.cc27
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;
}