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/function/time/date.h>
00023
00024 namespace drizzled
00025 {
00026
00027 class Item_date_add_interval :public Item_date_func
00028 {
00029 String value;
00030 enum_field_types cached_field_type;
00031
00032 public:
00033 const interval_type int_type;
00034 const bool date_sub_interval;
00035 Item_date_add_interval(Item *a,Item *b,interval_type type_arg,bool neg_arg)
00036 :Item_date_func(a,b),int_type(type_arg), date_sub_interval(neg_arg) {}
00037 String *val_str(String *);
00038 const char *func_name() const { return "date_add_interval"; }
00039 void fix_length_and_dec();
00040 enum_field_types field_type() const { return cached_field_type; }
00041 int64_t val_int();
00042 bool get_date(type::Time &res, uint32_t fuzzy_date);
00043 bool eq(const Item *item, bool binary_cmp) const;
00044 virtual void print(String *str);
00045 };
00046
00047 }
00048