Loading mysql-test/r/func_str.result +23 −0 Original line number Diff line number Diff line Loading @@ -703,3 +703,26 @@ NULL select trim('xyz' from null) as "must_be_null"; must_be_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; mysql-test/t/func_str.test +27 −0 Original line number Diff line number Diff line Loading @@ -443,3 +443,30 @@ select quote(trim(concat(' ', 'a'))); # select trim(null from 'kate') 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; sql/item_strfunc.cc +1 −0 Original line number Diff line number Diff line Loading @@ -2171,6 +2171,7 @@ String *Item_func_conv::val_str(String *str) return 0; } null_value=0; unsigned_flag= !(from_base < 0); if (from_base < 0) dec= my_strntoll(res->charset(),res->ptr(),res->length(),-from_base,&endptr,&err); else Loading Loading
mysql-test/r/func_str.result +23 −0 Original line number Diff line number Diff line Loading @@ -703,3 +703,26 @@ NULL select trim('xyz' from null) as "must_be_null"; must_be_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;
mysql-test/t/func_str.test +27 −0 Original line number Diff line number Diff line Loading @@ -443,3 +443,30 @@ select quote(trim(concat(' ', 'a'))); # select trim(null from 'kate') 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;
sql/item_strfunc.cc +1 −0 Original line number Diff line number Diff line Loading @@ -2171,6 +2171,7 @@ String *Item_func_conv::val_str(String *str) return 0; } null_value=0; unsigned_flag= !(from_base < 0); if (from_base < 0) dec= my_strntoll(res->charset(),res->ptr(),res->length(),-from_base,&endptr,&err); else Loading