mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
A fix (bug #5615 type of aggregate function column wrong when using group by).
mysql-test/r/func_group.result: test case (bug #5615 type of aggregate function column wrong when using group by) mysql-test/t/func_group.test: test case (bug #5615 type of aggregate function column wrong when using group by) sql/sql_select.cc: A fix (bug #5615 type of aggregate function column wrong when using group by): should create a temporary field of the proper type in case of MIN|MAX(field).
This commit is contained in:
parent
1073271b1c
commit
47f8a473bd
3 changed files with 28 additions and 0 deletions
|
@ -719,3 +719,12 @@ one 2
|
|||
two 2
|
||||
three 1
|
||||
drop table t1;
|
||||
create table t1(a int, b datetime);
|
||||
insert into t1 values (1, NOW()), (2, NOW());
|
||||
create table t2 select MAX(b) from t1 group by a;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`MAX(b)` datetime default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -458,3 +458,13 @@ INSERT INTO t1 VALUES
|
|||
|
||||
select val, count(*) from t1 group by val;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #5615: type of aggregate function column wrong when using group by
|
||||
#
|
||||
|
||||
create table t1(a int, b datetime);
|
||||
insert into t1 values (1, NOW()), (2, NOW());
|
||||
create table t2 select MAX(b) from t1 group by a;
|
||||
show create table t2;
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -4744,6 +4744,15 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
|
|||
item->name,table,item_sum->decimals);
|
||||
case Item_sum::UNIQUE_USERS_FUNC:
|
||||
return new Field_long(9,maybe_null,item->name,table,1);
|
||||
case Item_sum::MIN_FUNC:
|
||||
case Item_sum::MAX_FUNC:
|
||||
if (item_sum->args[0]->type() == Item::FIELD_ITEM)
|
||||
{
|
||||
*from_field= ((Item_field*) item_sum->args[0])->field;
|
||||
return create_tmp_field_from_field(thd, *from_field, item, table,
|
||||
modify_item, convert_blob_length);
|
||||
}
|
||||
/* fall through */
|
||||
default:
|
||||
switch (item_sum->result_type()) {
|
||||
case REAL_RESULT:
|
||||
|
|
Loading…
Reference in a new issue