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'));
|
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'))
|
collation(replace(_latin2'abcd',_latin2'b',_latin2'B')) coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'))
|
||||||
latin2_general_ci 3
|
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
|
create table t1
|
||||||
select
|
select
|
||||||
bin(130),
|
bin(130),
|
||||||
@@ -559,7 +562,8 @@ quote(_latin2'ab'),
|
|||||||
soundex(_latin2'ab'),
|
soundex(_latin2'ab'),
|
||||||
substring(_latin2'ab',1),
|
substring(_latin2'ab',1),
|
||||||
insert(_latin2'abcd',2,3,_latin2'ef'),
|
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:
|
Warnings:
|
||||||
Warning 1265 Data truncated for column 'format(130,10)' at row 1
|
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 '',
|
`soundex(_latin2'ab')` char(4) character set latin2 NOT NULL default '',
|
||||||
`substring(_latin2'ab',1)` char(2) 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 '',
|
`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
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
select SUBSTR('abcdefg',3,2);
|
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(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(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(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
|
create table t1
|
||||||
select
|
select
|
||||||
@@ -336,7 +337,8 @@ select
|
|||||||
soundex(_latin2'ab'),
|
soundex(_latin2'ab'),
|
||||||
substring(_latin2'ab',1),
|
substring(_latin2'ab',1),
|
||||||
insert(_latin2'abcd',2,3,_latin2'ef'),
|
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;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@@ -1461,6 +1461,7 @@ void Item_func_encode::fix_length_and_dec()
|
|||||||
{
|
{
|
||||||
max_length=args[0]->max_length;
|
max_length=args[0]->max_length;
|
||||||
maybe_null=args[0]->maybe_null;
|
maybe_null=args[0]->maybe_null;
|
||||||
|
collation.set(&my_charset_bin);
|
||||||
}
|
}
|
||||||
|
|
||||||
String *Item_func_encode::val_str(String *str)
|
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());
|
res=copy_if_not_alloced(str,res,res->length());
|
||||||
sql_crypt.init();
|
sql_crypt.init();
|
||||||
sql_crypt.encode((char*) res->ptr(),res->length());
|
sql_crypt.encode((char*) res->ptr(),res->length());
|
||||||
|
res->set_charset(&my_charset_bin);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user