summaryrefslogtreecommitdiff
path: root/sql/field.h
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-12-19 17:28:22 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2017-12-19 17:28:22 +0200
commit0436a0ff3ccb837a8d3e5ed58628d6a23f16ab6d (patch)
treef5971fa4524ce2da166870930f03b970520ad0c2 /sql/field.h
parent0fd3def284b78dff71590686e8f82571fc3808e1 (diff)
parent88aff5f471d3d9ae8ecc2f909bcf5bd0ddd6aa7c (diff)
downloadmariadb-git-0436a0ff3ccb837a8d3e5ed58628d6a23f16ab6d.tar.gz
Merge bb-10.2-ext into 10.3
Diffstat (limited to 'sql/field.h')
-rw-r--r--sql/field.h14
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 *);