1 #ifndef ITEM_ROW_INCLUDED
2 #define ITEM_ROW_INCLUDED
22 table_map used_tables_cache, not_null_tables_cache;
24 bool const_item_cache;
31 used_tables_cache(item->used_tables_cache),
32 not_null_tables_cache(0),
33 arg_count(item->arg_count),
34 const_item_cache(item->const_item_cache),
38 enum Type type()
const {
return ROW_ITEM; };
39 void illegal_method_call(
const char *);
40 bool is_null() {
return null_value; }
43 illegal_method_call((
const char*)
"make_field");
47 illegal_method_call((
const char*)
"val");
52 illegal_method_call((
const char*)
"val_int");
57 illegal_method_call((
const char*)
"val_str");
62 illegal_method_call((
const char*)
"val_decimal");
65 bool get_date(
MYSQL_TIME *ltime, uint fuzzydate)
67 illegal_method_call((
const char *)
"get_date");
72 illegal_method_call((
const char *)
"get_time");
76 bool fix_fields(THD *thd,
Item **ref);
78 st_select_lex *removed_select);
80 void split_sum_func(THD *thd,
Ref_ptr_array ref_pointer_array,
82 table_map used_tables()
const {
return used_tables_cache; };
83 bool const_item()
const {
return const_item_cache; };
84 enum Item_result result_type()
const {
return ROW_RESULT; }
85 void update_used_tables();
86 table_map not_null_tables()
const {
return not_null_tables_cache; }
87 virtual void print(
String *str, enum_query_type query_type);
89 bool walk(Item_processor processor,
bool walk_subquery, uchar *arg);
92 uint cols() {
return arg_count; }
95 bool check_cols(uint c);
96 bool null_inside() {
return with_null; };