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 class Item_cache_str : public Item_cache
00027 {
00028 char buffer[STRING_BUFFER_USUAL_SIZE];
00029 String *value, value_buff;
00030 bool is_varbinary;
00031
00032 public:
00033 Item_cache_str(const Item *item);
00034 void store(Item *item);
00035 double val_real();
00036 int64_t val_int();
00037 String* val_str(String *) { assert(fixed == 1); return value; }
00038 type::Decimal *val_decimal(type::Decimal *);
00039 enum Item_result result_type() const { return STRING_RESULT; }
00040 const charset_info_st *charset() const { return value->charset(); };
00041 int save_in_field(Field *field, bool no_conversions);
00042 };
00043
00044 }
00045