diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-05-21 15:30:25 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-05-21 15:30:25 +0200 |
commit | 431e042b5d76ed5fd219c39db798c9e7478731c8 (patch) | |
tree | a5556e1a39e43ca6a9549ef949541efcd9725f40 /sql/field.cc | |
parent | 3f4ef5928e72faf2b7fd0c98c8705ac649d2faf9 (diff) | |
parent | 83d455be90a06e8fc1293a611061bd9529ed8536 (diff) | |
download | mariadb-git-431e042b5d76ed5fd219c39db798c9e7478731c8.tar.gz |
c
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sql/field.cc b/sql/field.cc index d913e395b1a..6e1851d89d1 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -7860,7 +7860,19 @@ String *Field_set::val_str(String *val_buffer, ulonglong tmp=(ulonglong) Field_enum::val_int(); uint bitnr=0; - val_buffer->set("", 0, field_charset); + if (tmp == 0) + { + /* + Some callers expect *val_buffer to contain the result, + so we assign to it, rather than doing 'return &empty_set_string. + */ + *val_buffer= empty_set_string; + return val_buffer; + } + + val_buffer->set_charset(field_charset); + val_buffer->length(0); + while (tmp && bitnr < (uint) typelib->count) { if (tmp & 1) |