|
|
@ -729,7 +729,9 @@ public: |
|
|
Fix after some tables has been pulled out. Basically re-calculate all |
|
|
Fix after some tables has been pulled out. Basically re-calculate all |
|
|
attributes that are dependent on the tables. |
|
|
attributes that are dependent on the tables. |
|
|
*/ |
|
|
*/ |
|
|
virtual void fix_after_pullout(st_select_lex *new_parent, Item **ref) {}; |
|
|
|
|
|
|
|
|
virtual void fix_after_pullout(st_select_lex *new_parent, Item **ref, |
|
|
|
|
|
bool merge) |
|
|
|
|
|
{}; |
|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
This method should be used in case where we are sure that we do not need |
|
|
This method should be used in case where we are sure that we do not need |
|
|
@ -2384,7 +2386,7 @@ public: |
|
|
bool send(Protocol *protocol, String *str_arg); |
|
|
bool send(Protocol *protocol, String *str_arg); |
|
|
void reset_field(Field *f); |
|
|
void reset_field(Field *f); |
|
|
bool fix_fields(THD *, Item **); |
|
|
bool fix_fields(THD *, Item **); |
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **ref); |
|
|
|
|
|
|
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **ref, bool merge); |
|
|
void make_field(Send_field *tmp_field); |
|
|
void make_field(Send_field *tmp_field); |
|
|
int save_in_field(Field *field,bool no_conversions); |
|
|
int save_in_field(Field *field,bool no_conversions); |
|
|
void save_org_in_field(Field *field, fast_field_copier optimizer_data); |
|
|
void save_org_in_field(Field *field, fast_field_copier optimizer_data); |
|
|
@ -3905,7 +3907,7 @@ public: |
|
|
bool send(Protocol *prot, String *tmp); |
|
|
bool send(Protocol *prot, String *tmp); |
|
|
void make_field(Send_field *field); |
|
|
void make_field(Send_field *field); |
|
|
bool fix_fields(THD *, Item **); |
|
|
bool fix_fields(THD *, Item **); |
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **ref); |
|
|
|
|
|
|
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **ref, bool merge); |
|
|
int save_in_field(Field *field, bool no_conversions); |
|
|
int save_in_field(Field *field, bool no_conversions); |
|
|
void save_org_in_field(Field *field, fast_field_copier optimizer_data); |
|
|
void save_org_in_field(Field *field, fast_field_copier optimizer_data); |
|
|
fast_field_copier setup_fast_field_copier(Field *field) |
|
|
fast_field_copier setup_fast_field_copier(Field *field) |
|
|
@ -4175,9 +4177,9 @@ public: |
|
|
Item *it= ((Item *) item)->real_item(); |
|
|
Item *it= ((Item *) item)->real_item(); |
|
|
return orig_item->eq(it, binary_cmp); |
|
|
return orig_item->eq(it, binary_cmp); |
|
|
} |
|
|
} |
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **refptr) |
|
|
|
|
|
|
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **refptr, bool merge) |
|
|
{ |
|
|
{ |
|
|
orig_item->fix_after_pullout(new_parent, &orig_item); |
|
|
|
|
|
|
|
|
orig_item->fix_after_pullout(new_parent, &orig_item, merge); |
|
|
} |
|
|
} |
|
|
int save_in_field(Field *to, bool no_conversions); |
|
|
int save_in_field(Field *to, bool no_conversions); |
|
|
enum Item_result result_type () const { return orig_item->result_type(); } |
|
|
enum Item_result result_type () const { return orig_item->result_type(); } |
|
|
@ -4435,7 +4437,7 @@ public: |
|
|
outer_ref->save_org_in_field(result_field, NULL); |
|
|
outer_ref->save_org_in_field(result_field, NULL); |
|
|
} |
|
|
} |
|
|
bool fix_fields(THD *, Item **); |
|
|
bool fix_fields(THD *, Item **); |
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **ref); |
|
|
|
|
|
|
|
|
void fix_after_pullout(st_select_lex *new_parent, Item **ref, bool merge); |
|
|
table_map used_tables() const |
|
|
table_map used_tables() const |
|
|
{ |
|
|
{ |
|
|
return (*ref)->const_item() ? 0 : OUTER_REF_TABLE_BIT; |
|
|
return (*ref)->const_item() ? 0 : OUTER_REF_TABLE_BIT; |
|
|
|