diff options
author | unknown <serg@serg.mylan> | 2004-08-19 03:02:09 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-08-19 03:02:09 +0200 |
commit | ae2bf6275e971f45cdfda8dada9a9bfd6f75e746 (patch) | |
tree | bb710739af8b8fd4ec8ff388deaf56c37a27d24a /sql/field.cc | |
parent | 945625ebaa21468fdf0b2a3c1786fca50bdd5aa2 (diff) | |
download | mariadb-git-ae2bf6275e971f45cdfda8dada9a9bfd6f75e746.tar.gz |
after merge fixes
strings/my_vsnprintf.c:
%.#s support in my_vsnprintf
BitKeeper/etc/ignore:
Added EXCEPTIONS-CLIENT to the ignore list
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/sql/field.cc b/sql/field.cc index 4458c14160d..caf4e22f4ca 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -4268,24 +4268,21 @@ int Field_string::store(const char *from,uint length,CHARSET_INFO *cs) Store double value in Field_string or Field_varstring. SYNOPSIS - store_double_in_string_field() - field field to store value in - field_length number of characters in the field + store(double nr) nr number DESCRIPTION Pretty prints double number into field_length characters buffer. */ -static int store_double_in_string_field(Field_str *field, uint32 field_length, - double nr) +int Field_str::store(double nr) { bool use_scientific_notation=TRUE; char buff[DOUBLE_TO_STRING_CONVERSION_BUFFER_SIZE]; int length; - if (field_length < 32 && nr > 1) + if (field_length < 32 && nr > 1) // TODO: negative numbers { - if (field->ceiling == 0) + if (ceiling == 0) { static double e[]= {1e1, 1e2, 1e4, 1e8, 1e16 }; double p= 1; @@ -4294,23 +4291,17 @@ static int store_double_in_string_field(Field_str *field, uint32 field_length, if (field_length & j) p*= e[i]; } - field->ceiling= p-1; + ceiling= p-1; } - use_scientific_notation= (field->ceiling < nr); + use_scientific_notation= (ceiling < nr); } length= sprintf(buff, "%-.*g", use_scientific_notation ? max(0,field_length-5) : field_length, nr); DBUG_ASSERT(length <= field_length); - return field->store(buff, (uint) length); + return store((const char *)buff, (uint) length, charset()); } -int Field_string::store(double nr) - { - return store_double_in_string_field(this, field_length, nr); -} - - int Field_string::store(longlong nr) { char buff[64]; @@ -4479,12 +4470,6 @@ int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs) } -int Field_varstring::store(double nr) -{ - return store_double_in_string_field(this, field_length, nr); -} - - int Field_varstring::store(longlong nr) { char buff[64]; |