00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include <drizzled/item/int.h>
00023
00024 namespace drizzled {
00025
00026 class Item_uint : public Item_int
00027 {
00028 public:
00029 Item_uint(const char *str_arg, uint32_t length);
00030 Item_uint(uint64_t i) :Item_int((uint64_t) i, 10) {}
00031 Item_uint(const char *str_arg, int64_t i, uint32_t length);
00032 double val_real()
00033 { assert(fixed == 1); return uint64_t2double((uint64_t)value); }
00034 String *val_str(String*);
00035 Item *clone_item() { return new Item_uint(name, value, max_length); }
00036 int save_in_field(Field *field, bool no_conversions);
00037 virtual void print(String *str);
00038 Item_num *neg ();
00039 uint32_t decimal_precision() const { return max_length; }
00040 };
00041
00042 }
00043