List of all members.
Public Member Functions |
| Item_func_if (Item *a, Item *b, Item *c) |
double | val_real () |
longlong | val_int () |
String * | val_str (String *str) |
my_decimal * | val_decimal (my_decimal *) |
bool | get_date (MYSQL_TIME *ltime, uint fuzzydate) |
bool | get_time (MYSQL_TIME *ltime) |
enum Item_result | result_type () const |
enum_field_types | field_type () const |
bool | fix_fields (THD *, Item **) |
void | fix_length_and_dec () |
void | fix_after_pullout (st_select_lex *parent_select, st_select_lex *removed_select) |
uint | decimal_precision () const |
const char * | func_name () const |
Member Function Documentation
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.
- Parameters:
-
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_func.
Perform context analysis of an IF item tree.
This function performs context analysis (name resolution) and calculates various attributes of the item tree with Item_func_if as its root. The function saves in ref the pointer to the item or to a newly created item that is considered as a replacement for the original one.
- Parameters:
-
thd | reference to the global context of the query thread |
ref | pointer to Item* variable where pointer to resulting "fixed" item is to be assigned |
- Note:
- Let T0(e)/T1(e) be the value of not_null_tables(e) when e is used on a predicate/function level. Then it's easy to show that:
T0(IF(e,e1,e2) = T1(IF(e,e1,e2))
T1(IF(e,e1,e2)) = intersection(T1(e1),T1(e2))
- Return values:
-
Reimplemented from Item_func.
The documentation for this class was generated from the following files: