22 #include <drizzled/item.h>
29 table_map used_tables_cache;
31 bool const_item_cache;
35 using Item::split_sum_func;
41 used_tables_cache(item->used_tables_cache),
42 arg_count(item->arg_count),
43 const_item_cache(item->const_item_cache),
47 enum Type type()
const {
return ROW_ITEM; };
48 void illegal_method_call(
const char*);
52 illegal_method_call(
"make_field");
56 illegal_method_call(
"val");
61 illegal_method_call(
"val_int");
66 illegal_method_call(
"val_str");
71 illegal_method_call(
"val_decimal");
80 enum Item_result result_type()
const {
return ROW_RESULT; }
81 void update_used_tables();
82 virtual void print(String *str);
84 bool walk(Item_processor processor,
bool walk_subquery,
unsigned char *arg);
85 Item *
transform(Item_transformer transformer,
unsigned char *arg);
87 uint32_t cols() {
return arg_count; }
88 Item* element_index(uint32_t i) {
return items[i]; }
89 Item** addr(uint32_t i) {
return items + i; }
90 bool check_cols(uint32_t c);
91 bool null_inside() {
return with_null; };
Item * transform(Item_transformer transformer, unsigned char *arg)
virtual void print(String *str)
table_map used_tables() const
void fix_after_pullout(Select_Lex *new_parent, Item **ref)
type::Decimal * val_decimal(type::Decimal *)
String * val_str(String *)