summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/convert.cc12
-rw-r--r--sql/field.cc18
-rw-r--r--sql/field_conv.cc8
3 files changed, 15 insertions, 23 deletions
diff --git a/sql/convert.cc b/sql/convert.cc
index 13a6dfe0392..155cb57f9fe 100644
--- a/sql/convert.cc
+++ b/sql/convert.cc
@@ -433,17 +433,7 @@ CONVERT *get_convert_set(const char *name)
{
for (CONVERT **ptr=convert_tables ; *ptr ; ptr++)
{
- /*
- BAR TODO: Monty's comments:
- Why is this using system_charset_info ?
- Isn't the character-set string given in the users default charset?
- Please add a TODO note to the code that this has to be fixed when the user
- will be able to cast strings to different character sets...
- The current code will also not work if/when we introduce support for
- 16 bit characters...
- (I know that there is a LOT of changes to do if we ever want do this...)
- */
- if (!my_strcasecmp(system_charset_info,(*ptr)->name,name))
+ if (!my_strcasecmp(my_charset_latin1,(*ptr)->name,name))
return (*ptr);
}
return 0;
diff --git a/sql/field.cc b/sql/field.cc
index dc61e71f351..45bc2bd9863 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -290,23 +290,23 @@ void Field::store_time(TIME *ltime,timestamp_type type)
char buff[25];
switch (type) {
case TIMESTAMP_NONE:
- store("",0,default_charset_info); // Probably an error
+ store("",0,my_charset_latin1); // Probably an error
break;
case TIMESTAMP_DATE:
sprintf(buff,"%04d-%02d-%02d", ltime->year,ltime->month,ltime->day);
- store(buff,10,default_charset_info);
+ store(buff,10,my_charset_latin1);
break;
case TIMESTAMP_FULL:
sprintf(buff,"%04d-%02d-%02d %02d:%02d:%02d",
ltime->year,ltime->month,ltime->day,
ltime->hour,ltime->minute,ltime->second);
- store(buff,19,default_charset_info);
+ store(buff,19,my_charset_latin1);
break;
case TIMESTAMP_TIME:
{
ulong length= my_sprintf(buff, (buff, "%02d:%02d:%02d",
ltime->hour,ltime->minute,ltime->second));
- store(buff,(uint) length, default_charset_info);
+ store(buff,(uint) length, my_charset_latin1);
break;
}
}
@@ -326,7 +326,7 @@ bool Field::optimize_range(uint idx)
void
Field_decimal::reset(void)
{
- Field_decimal::store("0",1,default_charset_info);
+ Field_decimal::store("0",1,my_charset_latin1);
}
void Field_decimal::overflow(bool negative)
@@ -3785,7 +3785,7 @@ int Field_string::store(double nr)
int width=min(field_length,DBL_DIG+5);
sprintf(buff,"%-*.*g",width,max(width-5,0),nr);
end=strcend(buff,' ');
- return Field_string::store(buff,(uint) (end - buff), default_charset_info);
+ return Field_string::store(buff,(uint) (end - buff), my_charset_latin1);
}
@@ -3984,7 +3984,7 @@ int Field_varstring::store(double nr)
int width=min(field_length,DBL_DIG+5);
sprintf(buff,"%-*.*g",width,max(width-5,0),nr);
end=strcend(buff,' ');
- return Field_varstring::store(buff,(uint) (end - buff), default_charset_info);
+ return Field_varstring::store(buff,(uint) (end - buff), my_charset_latin1);
}
@@ -4550,7 +4550,7 @@ void Field_blob::sql_type(String &res) const
case 3: str="medium"; break;
case 4: str="long"; break;
}
- res.set(str,(uint) strlen(str),default_charset_info);
+ res.set(str,(uint) strlen(str),my_charset_latin1);
res.append(binary() ? "blob" : "text");
if (!binary())
{
@@ -5314,7 +5314,7 @@ create_field::create_field(Field *old_field,Field *orig_field)
orig_field)
{
char buff[MAX_FIELD_WIDTH],*pos;
- CHARSET_INFO *field_charset= charset ? charset : default_charset_info;
+ CHARSET_INFO *field_charset= charset;
String tmp(buff,sizeof(buff),field_charset);
/* Get the value from record[2] (the default value row) */
diff --git a/sql/field_conv.cc b/sql/field_conv.cc
index 409c22d61d4..0a8c122812c 100644
--- a/sql/field_conv.cc
+++ b/sql/field_conv.cc
@@ -263,7 +263,8 @@ static void do_conv_blob(Copy_field *copy)
{
copy->from_field->val_str(&copy->tmp,&copy->tmp);
((Field_blob *) copy->to_field)->store(copy->tmp.ptr(),
- copy->tmp.length(),default_charset_info);
+ copy->tmp.length(),
+ copy->tmp.charset());
}
/* Save blob in copy->tmp for GROUP BY */
@@ -275,7 +276,8 @@ static void do_save_blob(Copy_field *copy)
copy->from_field->val_str(&res,&res);
copy->tmp.copy(res);
((Field_blob *) copy->to_field)->store(copy->tmp.ptr(),
- copy->tmp.length(),default_charset_info);
+ copy->tmp.length(),
+ copy->tmp.charset());
}
@@ -284,7 +286,7 @@ static void do_field_string(Copy_field *copy)
char buff[MAX_FIELD_WIDTH];
copy->tmp.set_quick(buff,sizeof(buff),default_charset_info);
copy->from_field->val_str(&copy->tmp,&copy->tmp);
- copy->to_field->store(copy->tmp.c_ptr_quick(),copy->tmp.length(),default_charset_info);
+ copy->to_field->store(copy->tmp.c_ptr_quick(),copy->tmp.length(),copy->tmp.charset());
}