Commit 3066c662 authored by unknown's avatar unknown

func_str.result, func_str.test:

  Added a test case for bug #7751.
item_strfunc.cc:
  Fixed bug #7751.
  The function Item_func_conv::val_str did not update
  the unsigned_flag value.


sql/item_strfunc.cc:
  Fixed bug #7751.
  The function Item_func_conv::val_str did not update
  the unsigned_flag value.
mysql-test/t/func_str.test:
  Added a test case for bug #7751.
mysql-test/r/func_str.result:
  Added a test case for bug #7751.
parent d9e80b6a
...@@ -703,3 +703,26 @@ NULL ...@@ -703,3 +703,26 @@ NULL
select trim('xyz' from null) as "must_be_null"; select trim('xyz' from null) as "must_be_null";
must_be_null must_be_null
NULL NULL
CREATE TABLE t1 (
id int(11) NOT NULL auto_increment,
a bigint(20) unsigned default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES
('0','16307858876001849059');
SELECT CONV('e251273eb74a8ee3', 16, 10);
CONV('e251273eb74a8ee3', 16, 10)
16307858876001849059
EXPLAIN
SELECT id
FROM t1
WHERE a = 16307858876001849059;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
EXPLAIN
SELECT id
FROM t1
WHERE a = CONV('e251273eb74a8ee3', 16, 10);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1
DROP TABLE t1;
...@@ -443,3 +443,30 @@ select quote(trim(concat(' ', 'a'))); ...@@ -443,3 +443,30 @@ select quote(trim(concat(' ', 'a')));
# #
select trim(null from 'kate') as "must_be_null"; select trim(null from 'kate') as "must_be_null";
select trim('xyz' from null) as "must_be_null"; select trim('xyz' from null) as "must_be_null";
#
# Bug #7751 - conversion for a bigint unsigned constant
#
CREATE TABLE t1 (
id int(11) NOT NULL auto_increment,
a bigint(20) unsigned default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES
('0','16307858876001849059');
SELECT CONV('e251273eb74a8ee3', 16, 10);
EXPLAIN
SELECT id
FROM t1
WHERE a = 16307858876001849059;
EXPLAIN
SELECT id
FROM t1
WHERE a = CONV('e251273eb74a8ee3', 16, 10);
DROP TABLE t1;
...@@ -2171,6 +2171,7 @@ String *Item_func_conv::val_str(String *str) ...@@ -2171,6 +2171,7 @@ String *Item_func_conv::val_str(String *str)
return 0; return 0;
} }
null_value=0; null_value=0;
unsigned_flag= !(from_base < 0);
if (from_base < 0) if (from_base < 0)
dec= my_strntoll(res->charset(),res->ptr(),res->length(),-from_base,&endptr,&err); dec= my_strntoll(res->charset(),res->ptr(),res->length(),-from_base,&endptr,&err);
else else
......
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