00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <config.h>
00021 #include <math.h>
00022 #include <drizzled/item/cache_real.h>
00023
00024 namespace drizzled
00025 {
00026
00027 void Item_cache_real::store(Item *item)
00028 {
00029 value= item->val_result();
00030 null_value= item->null_value;
00031 }
00032
00033
00034 int64_t Item_cache_real::val_int()
00035 {
00036 assert(fixed == 1);
00037 return (int64_t) rint(value);
00038 }
00039
00040
00041 String* Item_cache_real::val_str(String *str)
00042 {
00043 assert(fixed == 1);
00044 str->set_real(value, decimals, default_charset());
00045 return str;
00046 }
00047
00048
00049 type::Decimal *Item_cache_real::val_decimal(type::Decimal *decimal_val)
00050 {
00051 assert(fixed == 1);
00052 double2_class_decimal(E_DEC_FATAL_ERROR, value, decimal_val);
00053 return decimal_val;
00054 }
00055
00056 }
00057