diff options
author | Alexander Barkov <bar@mariadb.org> | 2016-01-16 18:45:26 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2016-01-16 18:45:26 +0400 |
commit | 7b50447aa6d051b8d14bb01ef14802cb8ffee223 (patch) | |
tree | 551c3240ca2ebb227ebc5735157e6d97b0ce6501 /sql/item_geofunc.h | |
parent | 98b6026036913bed65b6e121c86580ebd92bd715 (diff) | |
download | mariadb-git-7b50447aa6d051b8d14bb01ef14802cb8ffee223.tar.gz |
MDEV-9407 Illegal mix of collation when using GROUP_CONCAT in a VIEW
MDEV-9408 CREATE TABLE SELECT MAX(int_column) creates different columns for table vs view
There were three almost identical pieces of the code:
- Field *Item_func::tmp_table_field();
- Field *Item_sum::create_tmp_field();
- Field *create_tmp_field_from_item();
with a difference in very small details (hence the bugs):
Only Item_func::tmp_table_field() was correct, the other two were not.
Removing the two incorrect pieces of the redundant code.
Joining these three functions/methods into a single virtual method
Item::create_tmp_field().
Additionally, moving Item::make_string_field() and
Item::tmp_table_field_from_field_type() from the public into the
protected section of the class declaration, as they are now not
needed outside of Item.
Diffstat (limited to 'sql/item_geofunc.h')
-rw-r--r-- | sql/item_geofunc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/item_geofunc.h b/sql/item_geofunc.h index b72661fe054..56e2a729924 100644 --- a/sql/item_geofunc.h +++ b/sql/item_geofunc.h @@ -40,7 +40,7 @@ public: Item_geometry_func(THD *thd, List<Item> &list): Item_str_func(thd, list) {} void fix_length_and_dec(); enum_field_types field_type() const { return MYSQL_TYPE_GEOMETRY; } - Field *tmp_table_field(TABLE *t_arg); + Field *create_field_for_create_select(THD *thd, TABLE *table); }; class Item_func_geometry_from_text: public Item_geometry_func |