diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-09-24 15:48:02 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-09-24 15:48:02 +0400 |
commit | 428f03c0b5cb9b0d85a7d70772dbf2b430672e83 (patch) | |
tree | e8cdf68d31281010712670e8789e25f69faf90b8 /sql/item_strfunc.cc | |
parent | e5418942609833edb681d16c4e2705f8c338bfee (diff) | |
download | mariadb-git-428f03c0b5cb9b0d85a7d70772dbf2b430672e83.tar.gz |
MDEV-8839 COLUMN_GET() produces warnings with no data
Diffstat (limited to 'sql/item_strfunc.cc')
-rw-r--r-- | sql/item_strfunc.cc | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 2357f63bc88..d9cb252b998 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -4963,13 +4963,12 @@ longlong Item_dyncol_get::val_int() if (end != org_end || error > 0) { THD *thd= current_thd; - char buff[80]; - strmake(buff, val.x.string.value.str, MY_MIN(sizeof(buff)-1, - val.x.string.value.length)); push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_BAD_DATA, ER_THD(thd, ER_BAD_DATA), - buff, + ErrConvString(val.x.string.value.str, + val.x.string.value.length, + val.x.string.charset).ptr(), unsigned_flag ? "UNSIGNED INT" : "INT"); } unsigned_flag= error >= 0; @@ -5028,13 +5027,13 @@ double Item_dyncol_get::val_real() error) { THD *thd= current_thd; - char buff[80]; - strmake(buff, val.x.string.value.str, MY_MIN(sizeof(buff)-1, - val.x.string.value.length)); push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_BAD_DATA, ER_THD(thd, ER_BAD_DATA), - buff, "DOUBLE"); + ErrConvString(val.x.string.value.str, + val.x.string.value.length, + val.x.string.charset).ptr(), + "DOUBLE"); } return res; } @@ -5085,9 +5084,6 @@ my_decimal *Item_dyncol_get::val_decimal(my_decimal *decimal_value) int rc; rc= str2my_decimal(0, val.x.string.value.str, val.x.string.value.length, val.x.string.charset, decimal_value, &end); - char buff[80]; - strmake(buff, val.x.string.value.str, MY_MIN(sizeof(buff)-1, - val.x.string.value.length)); if (rc != E_DEC_OK || end != val.x.string.value.str + val.x.string.value.length) { @@ -5095,7 +5091,10 @@ my_decimal *Item_dyncol_get::val_decimal(my_decimal *decimal_value) push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_BAD_DATA, ER_THD(thd, ER_BAD_DATA), - buff, "DECIMAL"); + ErrConvString(val.x.string.value.str, + val.x.string.value.length, + val.x.string.charset).ptr(), + "DECIMAL"); } break; } |