@@ -745,6 +745,10 @@ class Field: public Value_source
745745 { return store (ls->str , ls->length , cs); }
746746 virtual double val_real (void )=0;
747747 virtual longlong val_int (void )=0;
748+ virtual ulonglong val_uint (void )
749+ {
750+ return (ulonglong) val_int ();
751+ }
748752 virtual bool val_bool (void )= 0;
749753 virtual my_decimal *val_decimal (my_decimal *);
750754 inline String *val_str (String *str) { return val_str (str, str); }
@@ -1999,6 +2003,7 @@ class Field_float :public Field_real {
19992003
20002004
20012005class Field_double :public Field_real {
2006+ longlong val_int_from_real (bool want_unsigned_result);
20022007public:
20032008 Field_double (uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
20042009 uchar null_bit_arg,
@@ -2025,7 +2030,8 @@ class Field_double :public Field_real {
20252030 int store (longlong nr, bool unsigned_val);
20262031 int reset (void ) { bzero (ptr,sizeof (double )); return 0 ; }
20272032 double val_real (void );
2028- longlong val_int (void );
2033+ longlong val_int (void ) { return val_int_from_real (false ); }
2034+ ulonglong val_uint (void ) { return (ulonglong) val_int_from_real (true ); }
20292035 String *val_str (String*,String *);
20302036 bool send_binary (Protocol *protocol);
20312037 int cmp (const uchar *,const uchar *);
0 commit comments