Commit 1d16fa5d authored by unknown's avatar unknown

Ensure that hex strings are used as integers in cast(... signed/unsigned)

This fixes the new report for bug #7036


mysql-test/t/cast.test:
  Added test for cast(hex-value to signed/unsigned)
sql/item.h:
  Ensure that hex strings are used as integers in cast(... signed/unsigned)
parent 2a5505c7
......@@ -20,6 +20,10 @@ select CONVERT(DATE "2004-01-22 21:45:33",CHAR);
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
select CONVERT(DATE "2004-01-22 21:45:33",BINARY(4));
select CAST(DATE "2004-01-22 21:45:33" AS BINARY(4));
select CAST(0xb3 as signed);
select CAST(0x8fffffffffffffff as signed);
select CAST(0xffffffffffffffff as unsigned);
select CAST(0xfffffffffffffffe as signed);
# out-of-range cases
select cast('18446744073709551616' as unsigned);
......
......@@ -842,6 +842,7 @@ public:
String *val_str(String*) { DBUG_ASSERT(fixed == 1); return &str_value; }
int save_in_field(Field *field, bool no_conversions);
enum Item_result result_type () const { return STRING_RESULT; }
enum Item_result cast_to_int_type() const { return INT_RESULT; }
enum_field_types field_type() const { return MYSQL_TYPE_STRING; }
// to prevent drop fixed flag (no need parent cleanup call)
void cleanup() {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment