00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <drizzled/item/cache.h>
00021
00022 #pragma once
00023
00024 namespace drizzled
00025 {
00026
00027 class Item_cache_str: public Item_cache
00028 {
00029 char buffer[STRING_BUFFER_USUAL_SIZE];
00030 String *value, value_buff;
00031 bool is_varbinary;
00032
00033 public:
00034 Item_cache_str(const Item *item);
00035 void store(Item *item);
00036 double val_real();
00037 int64_t val_int();
00038 String* val_str(String *) { assert(fixed == 1); return value; }
00039 type::Decimal *val_decimal(type::Decimal *);
00040 enum Item_result result_type() const { return STRING_RESULT; }
00041 const CHARSET_INFO *charset() const { return value->charset(); };
00042 int save_in_field(Field *field, bool no_conversions);
00043 };
00044
00045 }
00046