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 <cmath>
00022 #include <drizzled/item/cache_real.h>
00023
00024 namespace drizzled {
00025
00026 void Item_cache_real::store(Item *item)
00027 {
00028 value= item->val_result();
00029 null_value= item->null_value;
00030 }
00031
00032 int64_t Item_cache_real::val_int()
00033 {
00034 assert(fixed == 1);
00035 return (int64_t) rint(value);
00036 }
00037
00038 String* Item_cache_real::val_str(String *str)
00039 {
00040 assert(fixed == 1);
00041 str->set_real(value, decimals, default_charset());
00042 return str;
00043 }
00044
00045 type::Decimal *Item_cache_real::val_decimal(type::Decimal *decimal_val)
00046 {
00047 assert(fixed == 1);
00048 double2_class_decimal(E_DEC_FATAL_ERROR, value, decimal_val);
00049 return decimal_val;
00050 }
00051
00052 }
00053