summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-04-06 18:30:34 +0300
committerunknown <monty@mysql.com>2004-04-06 18:30:34 +0300
commit2d5635e3c8cfc6cc74f182b849813df909e4ec1d (patch)
tree61084d235f0a3818309e1614afb21bb8805bdbaa /sql
parent799266346626fad317e535002c2cf8e22bf7a1bf (diff)
parent815c23f1e6431a6e20e8915fa92a71f7a754d5b7 (diff)
downloadmariadb-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.cc12
-rw-r--r--sql/protocol.cc5
-rw-r--r--sql/table.cc1
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)