summaryrefslogtreecommitdiff
path: root/sql/item_strfunc.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2015-09-24 15:48:02 +0400
committerAlexander Barkov <bar@mariadb.org>2015-09-24 15:48:02 +0400
commit428f03c0b5cb9b0d85a7d70772dbf2b430672e83 (patch)
treee8cdf68d31281010712670e8789e25f69faf90b8 /sql/item_strfunc.cc
parente5418942609833edb681d16c4e2705f8c338bfee (diff)
downloadmariadb-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.cc23
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;
}