diff options
author | unknown <monty@mysql.com> | 2004-04-06 18:30:34 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-04-06 18:30:34 +0300 |
commit | 2d5635e3c8cfc6cc74f182b849813df909e4ec1d (patch) | |
tree | 61084d235f0a3818309e1614afb21bb8805bdbaa /sql | |
parent | 799266346626fad317e535002c2cf8e22bf7a1bf (diff) | |
parent | 815c23f1e6431a6e20e8915fa92a71f7a754d5b7 (diff) | |
download | mariadb-git-2d5635e3c8cfc6cc74f182b849813df909e4ec1d.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1
Diffstat (limited to 'sql')
-rw-r--r-- | sql/field.cc | 12 | ||||
-rw-r--r-- | sql/protocol.cc | 5 | ||||
-rw-r--r-- | sql/table.cc | 1 |
3 files changed, 16 insertions, 2 deletions
diff --git a/sql/field.cc b/sql/field.cc index 8408bfdf578..30ae20de94b 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -5623,6 +5623,18 @@ Field *make_field(char *ptr, uint32 field_length, null_pos=0; null_bit=0; } + + switch (field_type) + { + case FIELD_TYPE_DATE: + case FIELD_TYPE_NEWDATE: + case FIELD_TYPE_TIME: + case FIELD_TYPE_DATETIME: + case FIELD_TYPE_TIMESTAMP: + field_charset= &my_charset_bin; + default: break; + } + if (f_is_alpha(pack_flag)) { if (!f_is_packed(pack_flag)) diff --git a/sql/protocol.cc b/sql/protocol.cc index 61af6ffceaf..fb4d2a57ab6 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -530,7 +530,10 @@ bool Protocol::send_fields(List<Item> *list, uint flag) /* Store fixed length fields */ pos= (char*) local_packet->ptr()+local_packet->length(); *pos++= 12; // Length of packed fields - int2store(pos, field.charsetnr); + if (item->collation.collation == &my_charset_bin || thd_charset == NULL) + int2store(pos, field.charsetnr); + else + int2store(pos, thd_charset->number); int4store(pos+2, field.length); pos[6]= field.type; int2store(pos+7,field.flags); diff --git a/sql/table.cc b/sql/table.cc index b25517bce10..23d99466a83 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -465,7 +465,6 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, goto err_not_open; /* purecov: inspected */ } reg_field->comment=comment; - reg_field->set_charset(charset); if (!(reg_field->flags & NOT_NULL_FLAG)) { if ((null_bit<<=1) == 256) |