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/func.h>
00023
00024 namespace drizzled
00025 {
00026
00027
00028
00029 class DRIZZLED_API Item_str_func :
00030 public Item_func
00031 {
00032 public:
00033 Item_str_func() :Item_func() { decimals=NOT_FIXED_DEC; }
00034 Item_str_func(Item *a) :Item_func(a) {decimals=NOT_FIXED_DEC; }
00035 Item_str_func(Item *a,Item *b) :Item_func(a,b) { decimals=NOT_FIXED_DEC; }
00036 Item_str_func(Item *a,Item *b,Item *c) :Item_func(a,b,c) { decimals=NOT_FIXED_DEC; }
00037 Item_str_func(Item *a,Item *b,Item *c,Item *d) :Item_func(a,b,c,d) {decimals=NOT_FIXED_DEC; }
00038 Item_str_func(Item *a,Item *b,Item *c,Item *d, Item* e) :Item_func(a,b,c,d,e) {decimals=NOT_FIXED_DEC; }
00039 Item_str_func(List<Item> &list) :Item_func(list) {decimals=NOT_FIXED_DEC; }
00040 virtual ~Item_str_func();
00041 int64_t val_int();
00042 double val_real();
00043 type::Decimal *val_decimal(type::Decimal *);
00044 enum Item_result result_type () const { return STRING_RESULT; }
00045 void left_right_max_length();
00046 bool fix_fields(Session *session, Item **ref);
00047 };
00048
00049 }
00050