mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug #3717 ENCODE returns a character string, not a binary string
This commit is contained in:
@@ -528,6 +528,9 @@ latin2_general_ci 3
|
||||
select collation(replace(_latin2'abcd',_latin2'b',_latin2'B')), coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'));
|
||||
collation(replace(_latin2'abcd',_latin2'b',_latin2'B')) coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'))
|
||||
latin2_general_ci 3
|
||||
select collation(encode('abcd','ab')), coercibility(encode('abcd','ab'));
|
||||
collation(encode('abcd','ab')) coercibility(encode('abcd','ab'))
|
||||
binary 3
|
||||
create table t1
|
||||
select
|
||||
bin(130),
|
||||
@@ -559,7 +562,8 @@ quote(_latin2'ab'),
|
||||
soundex(_latin2'ab'),
|
||||
substring(_latin2'ab',1),
|
||||
insert(_latin2'abcd',2,3,_latin2'ef'),
|
||||
replace(_latin2'abcd',_latin2'b',_latin2'B')
|
||||
replace(_latin2'abcd',_latin2'b',_latin2'B'),
|
||||
encode('abcd','ab')
|
||||
;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'format(130,10)' at row 1
|
||||
@@ -595,7 +599,8 @@ t1 CREATE TABLE `t1` (
|
||||
`soundex(_latin2'ab')` char(4) character set latin2 NOT NULL default '',
|
||||
`substring(_latin2'ab',1)` char(2) character set latin2 NOT NULL default '',
|
||||
`insert(_latin2'abcd',2,3,_latin2'ef')` char(6) character set latin2 NOT NULL default '',
|
||||
`replace(_latin2'abcd',_latin2'b',_latin2'B')` char(4) character set latin2 NOT NULL default ''
|
||||
`replace(_latin2'abcd',_latin2'b',_latin2'B')` char(4) character set latin2 NOT NULL default '',
|
||||
`encode('abcd','ab')` binary(4) NOT NULL default ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select SUBSTR('abcdefg',3,2);
|
||||
|
@@ -304,6 +304,7 @@ select collation(soundex(_latin2'ab')), coercibility(soundex(_latin2'ab'));
|
||||
select collation(substring(_latin2'ab',1)), coercibility(substring(_latin2'ab',1));
|
||||
select collation(insert(_latin2'abcd',2,3,_latin2'ef')), coercibility(insert(_latin2'abcd',2,3,_latin2'ef'));
|
||||
select collation(replace(_latin2'abcd',_latin2'b',_latin2'B')), coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'));
|
||||
select collation(encode('abcd','ab')), coercibility(encode('abcd','ab'));
|
||||
|
||||
create table t1
|
||||
select
|
||||
@@ -336,7 +337,8 @@ select
|
||||
soundex(_latin2'ab'),
|
||||
substring(_latin2'ab',1),
|
||||
insert(_latin2'abcd',2,3,_latin2'ef'),
|
||||
replace(_latin2'abcd',_latin2'b',_latin2'B')
|
||||
replace(_latin2'abcd',_latin2'b',_latin2'B'),
|
||||
encode('abcd','ab')
|
||||
;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
@@ -1461,6 +1461,7 @@ void Item_func_encode::fix_length_and_dec()
|
||||
{
|
||||
max_length=args[0]->max_length;
|
||||
maybe_null=args[0]->maybe_null;
|
||||
collation.set(&my_charset_bin);
|
||||
}
|
||||
|
||||
String *Item_func_encode::val_str(String *str)
|
||||
@@ -1476,6 +1477,7 @@ String *Item_func_encode::val_str(String *str)
|
||||
res=copy_if_not_alloced(str,res,res->length());
|
||||
sql_crypt.init();
|
||||
sql_crypt.encode((char*) res->ptr(),res->length());
|
||||
res->set_charset(&my_charset_bin);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user