summaryrefslogtreecommitdiff
path: root/sql/field.cc
diff options
context:
space:
mode:
authorbar@mysql.com <>2004-11-04 08:50:07 +0400
committerbar@mysql.com <>2004-11-04 08:50:07 +0400
commitf979603cf2c292b80fae7cc47f75ea34769f146f (patch)
treebe1f7ab5613e5379368f4145490211273c7be194 /sql/field.cc
parent13a60a76312d3035005d90a94fd2442456ce0f77 (diff)
downloadmariadb-git-f979603cf2c292b80fae7cc47f75ea34769f146f.tar.gz
field.cc, sql_mode.result, sql_mode.test:
"SHOW CREATE TABLE" mysql-4.0 and mysql-3.23 compatibiliry mode change: Check that a binary collation adds 'binary' suffix into a char() column definition in mysql40 and mysql2323 modes. This allows not to lose the column's case sensitivity when loading the dump in pre-4.1 servers.
Diffstat (limited to 'sql/field.cc')
-rw-r--r--sql/field.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 4b833874221..24bd0c48c92 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -4417,6 +4417,7 @@ void Field_string::sort_string(char *to,uint length)
void Field_string::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(), "%s(%d)",
@@ -4427,6 +4428,9 @@ void Field_string::sql_type(String &res) const
(has_charset() ? "char" : "binary")),
(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");
}
char *Field_string::pack(char *to, const char *from, uint max_length)