diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result index d784460a68d..a893e6ee4ed 100644 --- a/mysql-test/r/cast.result +++ b/mysql-test/r/cast.result @@ -91,11 +91,11 @@ ab a ab a a show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL default '', - `c2` varchar(2) NOT NULL default '', - `c3` varchar(2) NOT NULL default '', - `c4` varchar(2) NOT NULL default '', - `c5` varchar(2) NOT NULL default '' + `c1` varbinary(2) NOT NULL default '', + `c2` varbinary(2) NOT NULL default '', + `c3` varbinary(2) NOT NULL default '', + `c4` varbinary(2) NOT NULL default '', + `c5` varbinary(2) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 79e871c4e79..79bca741fba 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -124,7 +124,7 @@ create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d"); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` binary(10) default NULL + `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varbinary(10) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t1; date_format("2004-01-19 10:10:10", "%Y-%m-%d") diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index e65ddde8aef..6a206d1c7d9 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -611,7 +611,7 @@ t1 CREATE TABLE `t1` ( `substring(_latin2'ab',1)` varchar(2) character set latin2 NOT NULL default '', `insert(_latin2'abcd',2,3,_latin2'ef')` varchar(6) character set latin2 NOT NULL default '', `replace(_latin2'abcd',_latin2'b',_latin2'B')` varchar(4) character set latin2 NOT NULL default '', - `encode('abcd','ab')` binary(4) NOT NULL default '' + `encode('abcd','ab')` varbinary(4) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select SUBSTR('abcdefg',3,2); diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result index 1d1ee8a8561..347e1c39eb2 100644 --- a/mysql-test/r/ps_2myisam.result +++ b/mysql-test/r/ps_2myisam.result @@ -1775,7 +1775,7 @@ t5 CREATE TABLE `t5` ( `param03` double default NULL, `const04` varchar(3) NOT NULL default '', `param04` longtext, - `const05` binary(3) NOT NULL default '', + `const05` varbinary(3) NOT NULL default '', `param05` longblob, `const06` varchar(10) NOT NULL default '', `param06` longtext, diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result index 888b8f57764..57ae4a3793c 100644 --- a/mysql-test/r/ps_3innodb.result +++ b/mysql-test/r/ps_3innodb.result @@ -1758,7 +1758,7 @@ t5 CREATE TABLE `t5` ( `param03` double default NULL, `const04` varchar(3) NOT NULL default '', `param04` longtext, - `const05` binary(3) NOT NULL default '', + `const05` varbinary(3) NOT NULL default '', `param05` longblob, `const06` varchar(10) NOT NULL default '', `param06` longtext, diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result index d6e835adbc6..2f533f4c843 100644 --- a/mysql-test/r/ps_4heap.result +++ b/mysql-test/r/ps_4heap.result @@ -1759,7 +1759,7 @@ t5 CREATE TABLE `t5` ( `param03` double default NULL, `const04` varchar(3) NOT NULL default '', `param04` longtext, - `const05` binary(3) NOT NULL default '', + `const05` varbinary(3) NOT NULL default '', `param05` longblob, `const06` varchar(10) NOT NULL default '', `param06` longtext, diff --git a/mysql-test/r/ps_6bdb.result b/mysql-test/r/ps_6bdb.result index 3f9f3c61575..07034e01869 100644 --- a/mysql-test/r/ps_6bdb.result +++ b/mysql-test/r/ps_6bdb.result @@ -1758,7 +1758,7 @@ t5 CREATE TABLE `t5` ( `param03` double default NULL, `const04` varchar(3) NOT NULL default '', `param04` longtext, - `const05` binary(3) NOT NULL default '', + `const05` varbinary(3) NOT NULL default '', `param05` longblob, `const06` varchar(10) NOT NULL default '', `param06` longtext, diff --git a/mysql-test/r/type_ranges.result b/mysql-test/r/type_ranges.result index 4f2d2d7b54c..ef4f65eda1f 100644 --- a/mysql-test/r/type_ranges.result +++ b/mysql-test/r/type_ranges.result @@ -272,7 +272,7 @@ auto bigint(17) unsigned NULL PRI 0 select,insert,update,references t1 bigint(1) NULL 0 select,insert,update,references t2 varchar(1) latin1_swedish_ci select,insert,update,references t3 varchar(256) latin1_swedish_ci select,insert,update,references -t4 varchar(256) NULL select,insert,update,references +t4 varbinary(256) NULL select,insert,update,references t5 longtext latin1_swedish_ci select,insert,update,references t6 longblob NULL select,insert,update,references t7 char(0) latin1_swedish_ci select,insert,update,references diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index d4ce1e45bf0..1fbba8ebbb7 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -655,7 +655,7 @@ f show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `f` binary(24) default NULL + `f` varbinary(24) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 SELECT y from t2 UNION select da from t2; @@ -666,7 +666,7 @@ y show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `y` binary(10) default NULL + `y` varbinary(10) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 SELECT y from t2 UNION select dt from t2; @@ -677,7 +677,7 @@ y show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `y` binary(19) default NULL + `y` varbinary(19) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 SELECT da from t2 UNION select dt from t2; @@ -699,7 +699,7 @@ testc show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `dt` binary(19) default NULL + `dt` varbinary(19) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 SELECT dt from t2 UNION select sv from t2; @@ -710,7 +710,7 @@ testv show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `dt` binary(19) default NULL + `dt` varbinary(19) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 SELECT sc from t2 UNION select sv from t2; diff --git a/sql/field.cc b/sql/field.cc index 73f442a868e..dafb3dc25da 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -4778,11 +4778,18 @@ void Field_varstring::sort_string(char *to,uint length) void Field_varstring::sql_type(String &res) const { + THD *thd= table->in_use; CHARSET_INFO *cs=res.charset(); - ulong length= cs->cset->snprintf(cs,(char*) res.ptr(), - res.alloced_length(),"varchar(%u)", - field_length / charset()->mbmaxlen); + ulong length; + + length= cs->cset->snprintf(cs,(char*) res.ptr(), + res.alloced_length(), "%s(%d)", + (has_charset() ? "varchar" : "varbinary"), + (int) field_length / charset()->mbmaxlen); res.length(length); + if ((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)) && + has_charset() && (charset()->state & MY_CS_BINSORT)) + res.append(" binary"); }