diff options
author | unknown <sanja@askmonty.org> | 2013-03-18 15:07:52 +0200 |
---|---|---|
committer | unknown <sanja@askmonty.org> | 2013-03-18 15:07:52 +0200 |
commit | 2cd7cf8fe6fa41fca124c9239468fc22f8df9957 (patch) | |
tree | 783ad42c38b697e566e0d79d2425e0c5a5c93085 | |
parent | 589247ae86b25eaa9bd75e4f26ecd06831469311 (diff) | |
download | mariadb-git-2cd7cf8fe6fa41fca124c9239468fc22f8df9957.tar.gz |
MDEV-4269 fix.
Item_default_value inherited form Item_field so should create temporary table field similary.
-rw-r--r-- | mysql-test/r/func_group_innodb.result | 14 | ||||
-rw-r--r-- | mysql-test/t/func_group_innodb.test | 14 | ||||
-rw-r--r-- | sql/sql_select.cc | 1 |
3 files changed, 29 insertions, 0 deletions
diff --git a/mysql-test/r/func_group_innodb.result b/mysql-test/r/func_group_innodb.result index e68242a8191..9d64b63f8f0 100644 --- a/mysql-test/r/func_group_innodb.result +++ b/mysql-test/r/func_group_innodb.result @@ -185,3 +185,17 @@ member_id_to COUNT(*) 518491 5 DROP TABLE t1; # End of test BUG#12713907 +# +# MDEV-4269: crash when grouping by values() +# +SELECT @@storage_engine INTO @old_engine; +set storage_engine=innodb; +create table y select 1 b; +select 1 from y group by b; +1 +1 +select 1 from y group by values(b); +1 +1 +drop table y; +SET storage_engine=@old_engine; diff --git a/mysql-test/t/func_group_innodb.test b/mysql-test/t/func_group_innodb.test index 58f365bb244..accd1f6a6b5 100644 --- a/mysql-test/t/func_group_innodb.test +++ b/mysql-test/t/func_group_innodb.test @@ -127,3 +127,17 @@ SELECT member_id_to, COUNT(*) FROM t1 WHERE r_date = DROP TABLE t1; --echo # End of test BUG#12713907 + +--echo # +--echo # MDEV-4269: crash when grouping by values() +--echo # + +SELECT @@storage_engine INTO @old_engine; +set storage_engine=innodb; + +create table y select 1 b; +select 1 from y group by b; +select 1 from y group by values(b); +drop table y; +SET storage_engine=@old_engine; + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index bc8b7a9e815..24ca1ab0174 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -9922,6 +9922,7 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type, } case Item::FIELD_ITEM: case Item::DEFAULT_VALUE_ITEM: + case Item::INSERT_VALUE_ITEM: { Item_field *field= (Item_field*) item; bool orig_modify= modify_item; |