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/item/basic_constant.h>
00023
00024 namespace drizzled
00025 {
00026
00027 class Item_hex_string: public Item_basic_constant
00028 {
00029 public:
00030 Item_hex_string() {}
00031 Item_hex_string(const char *str,uint32_t str_length);
00032 enum Type type() const { return VARBIN_ITEM; }
00033 double val_real()
00034 {
00035 assert(fixed == 1);
00036 return (double) (uint64_t) Item_hex_string::val_int();
00037 }
00038 int64_t val_int();
00039 bool basic_const_item() const { return 1; }
00040 String *val_str(String*) { assert(fixed == 1); return &str_value; }
00041 type::Decimal *val_decimal(type::Decimal *);
00042 int save_in_field(Field *field, bool no_conversions);
00043 enum Item_result result_type () const { return STRING_RESULT; }
00044 enum Item_result cast_to_int_type() const { return INT_RESULT; }
00045 enum_field_types field_type() const { return DRIZZLE_TYPE_VARCHAR; }
00046 virtual void print(String *str);
00047 bool eq(const Item *item, bool binary_cmp) const;
00048 virtual Item *safe_charset_converter(const CHARSET_INFO * const tocs);
00049 };
00050
00051 }
00052