diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-12-19 17:28:22 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-12-19 17:28:22 +0200 |
commit | 0436a0ff3ccb837a8d3e5ed58628d6a23f16ab6d (patch) | |
tree | f5971fa4524ce2da166870930f03b970520ad0c2 /sql/field.h | |
parent | 0fd3def284b78dff71590686e8f82571fc3808e1 (diff) | |
parent | 88aff5f471d3d9ae8ecc2f909bcf5bd0ddd6aa7c (diff) | |
download | mariadb-git-0436a0ff3ccb837a8d3e5ed58628d6a23f16ab6d.tar.gz |
Merge bb-10.2-ext into 10.3
Diffstat (limited to 'sql/field.h')
-rw-r--r-- | sql/field.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sql/field.h b/sql/field.h index 7338a8ff679..2bbea486754 100644 --- a/sql/field.h +++ b/sql/field.h @@ -842,6 +842,10 @@ public: } virtual double val_real(void)=0; virtual longlong val_int(void)=0; + virtual ulonglong val_uint(void) + { + return (ulonglong) val_int(); + } virtual bool val_bool(void)= 0; virtual my_decimal *val_decimal(my_decimal *); inline String *val_str(String *str) { return val_str(str, str); } @@ -2195,6 +2199,7 @@ private: class Field_double :public Field_real { + longlong val_int_from_real(bool want_unsigned_result); public: Field_double(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, uchar null_bit_arg, @@ -2232,13 +2237,8 @@ public: int store(longlong nr, bool unsigned_val); int reset(void) { bzero(ptr,sizeof(double)); return 0; } double val_real(void); - longlong val_int(void) - { - Converter_double_to_longlong conv(Field_double::val_real(), false); - if (conv.error()) - conv.push_warning(get_thd(), Field_double::val_real(), false); - return conv.result(); - } + longlong val_int(void) { return val_int_from_real(false); } + ulonglong val_uint(void) { return (ulonglong) val_int_from_real(true); } String *val_str(String*,String *); bool send_binary(Protocol *protocol); int cmp(const uchar *,const uchar *); |