diff options
author | Monty <monty@mariadb.org> | 2017-11-09 23:21:41 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2017-11-09 23:21:41 +0200 |
commit | 0bb0d52221af99c46d17486382806caa6dd7338e (patch) | |
tree | 92b2ddfceaf8df5be6d47774b25fd3006ac5bb35 /sql/item.h | |
parent | 7dbff2c513aeec3b3f3d0fa4952ae97deba22282 (diff) | |
parent | d40c23570ff1a9ba5aa317b85a32a4b27780b8ab (diff) | |
download | mariadb-git-0bb0d52221af99c46d17486382806caa6dd7338e.tar.gz |
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
Conflicts:
mysql-test/r/cte_recursive.result
mysql-test/r/derived_cond_pushdown.result
mysql-test/t/cte_recursive.test
mysql-test/t/derived_cond_pushdown.test
sql/datadict.cc
sql/handler.cc
Diffstat (limited to 'sql/item.h')
-rw-r--r-- | sql/item.h | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/sql/item.h b/sql/item.h index c128251dae9..b7ba236e4b1 100644 --- a/sql/item.h +++ b/sql/item.h @@ -733,7 +733,9 @@ public: Fix after some tables has been pulled out. Basically re-calculate all 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 @@ -2760,7 +2762,7 @@ public: bool send(Protocol *protocol, st_value *buffer); void reset_field(Field *f); 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(THD *thd, Send_field *tmp_field); int save_in_field(Field *field,bool no_conversions); void save_org_in_field(Field *field, fast_field_copier optimizer_data); @@ -3026,6 +3028,17 @@ public: Field *result_field; Item_null_result(THD *thd): Item_null(thd), result_field(0) {} bool is_result_field() { return result_field != 0; } +#if MARIADB_VERSION_ID < 100300 + enum_field_types field_type() const + { + return result_field->type(); + } +#else + const Type_handler *type_handler() const + { + return result_field->type_handler(); + } +#endif void save_in_result_field(bool no_conversions) { save_in_field(result_field, no_conversions); @@ -4390,7 +4403,7 @@ public: bool send(Protocol *prot, st_value *buffer); void make_field(THD *thd, Send_field *field); 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); void save_org_in_field(Field *field, fast_field_copier optimizer_data); fast_field_copier setup_fast_field_copier(Field *field) @@ -4698,9 +4711,9 @@ public: Item *it= ((Item *) item)->real_item(); 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); const Type_handler *type_handler() const { return orig_item->type_handler(); } @@ -4969,7 +4982,7 @@ public: outer_ref->save_org_in_field(result_field, NULL); } 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 { return (*ref)->const_item() ? 0 : OUTER_REF_TABLE_BIT; |