diff options
| author | Ramil Kalimullin <ramil@mysql.com> | 2010-11-18 15:01:50 +0300 |
|---|---|---|
| committer | Ramil Kalimullin <ramil@mysql.com> | 2010-11-18 15:01:50 +0300 |
| commit | 2b2983850f4711effca876baa3f926a7072a4fb8 (patch) | |
| tree | 04b3b89fdd9cd8129c671253e6d65fe9be72ded2 /sql/field.cc | |
| parent | abdaf1f79b07914ba31ef06a51927345526c92e0 (diff) | |
| parent | 3f391adc78e1dd91bb2c3638175f251f25d1b433 (diff) | |
| download | mariadb-git-2b2983850f4711effca876baa3f926a7072a4fb8.tar.gz | |
Manual-merge from 5.5-bugfixing.
Diffstat (limited to 'sql/field.cc')
| -rw-r--r-- | sql/field.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sql/field.cc b/sql/field.cc index ce1b1fc6eb0..e5cae9ea8e3 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -6327,10 +6327,13 @@ int Field_str::store(double nr) ASSERT_COLUMN_MARKED_FOR_WRITE; char buff[DOUBLE_TO_STRING_CONVERSION_BUFFER_SIZE]; uint local_char_length= field_length / charset()->mbmaxlen; - size_t length; - my_bool error; + size_t length= 0; + my_bool error= (local_char_length == 0); + + // my_gcvt() requires width > 0, and we may have a CHAR(0) column. + if (!error) + length= my_gcvt(nr, MY_GCVT_ARG_DOUBLE, local_char_length, buff, &error); - length= my_gcvt(nr, MY_GCVT_ARG_DOUBLE, local_char_length, buff, &error); if (error) { if (table->in_use->abort_on_warning) @@ -8408,6 +8411,8 @@ uchar *Field_enum::pack(uchar *to, const uchar *from, default: DBUG_ASSERT(0); } + MY_ASSERT_UNREACHABLE(); + DBUG_RETURN(NULL); } const uchar *Field_enum::unpack(uchar *to, const uchar *from, @@ -8430,6 +8435,8 @@ const uchar *Field_enum::unpack(uchar *to, const uchar *from, default: DBUG_ASSERT(0); } + MY_ASSERT_UNREACHABLE(); + DBUG_RETURN(NULL); } |
