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/charset_info.h>
00023 #include <drizzled/item/hex_string.h>
00024
00025 #include <drizzled/visibility.h>
00026
00027 namespace drizzled
00028 {
00029
00030 class Item_bin_string: public Item_hex_string
00031 {
00032 public:
00033 Item_bin_string(const char *str,uint32_t str_length);
00034 };
00035
00036 class DRIZZLED_API Item_result_field :
00037 public Item
00038 {
00039 public:
00040 Field *result_field;
00041 Item_result_field() :result_field(0) {}
00042
00043 Item_result_field(Session *session, Item_result_field *item):
00044 Item(session, item), result_field(item->result_field)
00045 {}
00046 ~Item_result_field() {}
00047 Field *get_tmp_table_field() { return result_field; }
00048 Field *tmp_table_field(Table *)
00049 { return result_field; }
00050 table_map used_tables() const { return 1; }
00051 virtual void fix_length_and_dec()=0;
00052 void set_result_field(Field *field) { result_field= field; }
00053 bool is_result_field() { return 1; }
00054 void save_in_result_field(bool no_conversions)
00055 {
00056 save_in_field(result_field, no_conversions);
00057 }
00058 void cleanup();
00059 };
00060
00061 }
00062