Commit fffef41d authored by unknown's avatar unknown

Fix for bug#3946: Error in LPAD() when padstring is longer than 1 character


mysql-test/r/ctype_ucs.result:
  Test for bug#3946: Error in LPAD() when padstring is longer than 1 character
mysql-test/t/ctype_ucs.test:
  Test for bug#3946: Error in LPAD() when padstring is longer than 1 character
parent 0839550f
......@@ -47,6 +47,15 @@ t1 CREATE TABLE `t1` (
`r` char(10) character set ucs2 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
create table t2(f1 Char(30));
insert into t2 values ("103000"), ("22720000"), ("3401200"), ("78000");
select lpad(f1, 12, "-o-/") from t2;
lpad(f1, 12, "-o-/")
-o-/-o103000
-o-/22720000
-o-/-3401200
-o-/-o-78000
drop table t2;
SET NAMES koi8r;
SET character_set_connection=ucs2;
create table t1 (a varchar(10) character set ucs2, key(a));
......
......@@ -47,6 +47,16 @@ LPAD(_ucs2 X'0420',10,_ucs2 X'0421') l,
RPAD(_ucs2 X'0420',10,_ucs2 X'0421') r;
SHOW CREATE TABLE t1;
DROP TABLE t1;
#
# BUG3946
#
create table t2(f1 Char(30));
insert into t2 values ("103000"), ("22720000"), ("3401200"), ("78000");
select lpad(f1, 12, "-o-/") from t2;
drop table t2;
######################################################
#
# Test of like
......
......@@ -2097,10 +2097,8 @@ String *Item_func_lpad::val_str(String *str)
count-= pad_char_length;
}
if (count > 0)
{
pad->length(pad->charpos(count));
str->append(*pad);
}
str->append(pad->ptr(), pad->charpos(count), collation.collation);
str->append(*res);
null_value= 0;
return str;
......
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