My Project
|
Public Member Functions | |
Item_row (List< Item > &) | |
Item_row (Item *head, List< Item > &tail) | |
Item_row (Item_row *item) | |
enum Type | type () const |
void | illegal_method_call (const char *) |
bool | is_null () |
void | make_field (Send_field *) |
double | val_real () |
longlong | val_int () |
String * | val_str (String *) |
my_decimal * | val_decimal (my_decimal *) |
bool | get_date (MYSQL_TIME *ltime, uint fuzzydate) |
bool | get_time (MYSQL_TIME *ltime) |
bool | fix_fields (THD *thd, Item **ref) |
void | fix_after_pullout (st_select_lex *parent_select, st_select_lex *removed_select) |
void | cleanup () |
void | split_sum_func (THD *thd, Ref_ptr_array ref_pointer_array, List< Item > &fields) |
table_map | used_tables () const |
bool | const_item () const |
enum Item_result | result_type () const |
void | update_used_tables () |
table_map | not_null_tables () const |
virtual void | print (String *str, enum_query_type query_type) |
bool | walk (Item_processor processor, bool walk_subquery, uchar *arg) |
Item * | transform (Item_transformer transformer, uchar *arg) |
uint | cols () |
Item * | element_index (uint i) |
Item ** | addr (uint i) |
bool | check_cols (uint c) |
bool | null_inside () |
void | bring_value () |
Item_row::Item_row | ( | List< Item > & | arg | ) |
Row items used for comparing rows and IN operations on rows:
(a, b, c) > (10, 10, 30) (a, b, c) = (select c, d, e, from t1 where x=12) (a, b, c) IN ((1,2,2), (3,4,5), (6,7,8) (a, b, c) IN (select c, d, e, from t1)
void Item_row::fix_after_pullout | ( | st_select_lex * | parent_select, |
st_select_lex * | removed_select | ||
) | [virtual] |
Fix after tables have been moved from one select_lex level to the parent level, e.g by semijoin conversion. Basically re-calculate all attributes dependent on the tables.
parent_select | select_lex that tables are moved to. |
removed_select | select_lex that tables are moved away from, child of parent_select. |
Reimplemented from Item.
void Item_row::print | ( | String * | str, |
enum_query_type | query_type | ||
) | [virtual] |
This method is used for to:
For more information about view definition query, INFORMATION_SCHEMA query and why they should be generated from the Item-tree,
Reimplemented from Item.
Item * Item_row::transform | ( | Item_transformer | transformer, |
uchar * | arg | ||
) | [virtual] |
Traverse item tree possibly transforming it (replacing items).
This function is designed to ease transformation of Item trees. Re-execution note: every such transformation is registered for rollback by THD::change_item_tree() and is rolled back at the end of execution by THD::rollback_item_tree_changes().
Therefore:
If you don't need to transform an item tree, but only traverse it, please use Item::walk() instead.
transformer | functor that performs transformation of a subtree |
arg | opaque argument passed to the functor |
Reimplemented from Item.