mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
- VARCHAR(n) with binary character set is now displayed as VARBINARY(N).
- CREATE TABLE t1 SELECT BINARY 'literal' now creates a VARBINARY() column, not a BINARY().
This commit is contained in:
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
13
sql/field.cc
13
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");
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user