mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
olap.result, olap.test:
Added test cases for bug #7914. sql_select.cc: Fixed bug #7914: rollup over expresssions such as sum(a)+1. sql/sql_select.cc: Fixed bug #7914: rollup over expresssions such as sum(a)+1. mysql-test/t/olap.test: Added test cases for bug #7914. mysql-test/r/olap.result: Added test cases for bug #7914.
This commit is contained in:
@ -405,3 +405,36 @@ a m
|
||||
2 2
|
||||
NULL 3
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a int(11));
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT a FROM t1 UNION select 2) d
|
||||
GROUP BY a;
|
||||
a SUM(a) SUM(a)+1
|
||||
1 1 2
|
||||
2 2 3
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT a FROM t1 UNION select 2) d
|
||||
GROUP BY a WITH ROLLUP;
|
||||
a SUM(a) SUM(a)+1
|
||||
1 1 2
|
||||
2 2 3
|
||||
NULL 3 4
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT 1 a UNION select 2) d
|
||||
GROUP BY a;
|
||||
a SUM(a) SUM(a)+1
|
||||
1 1 2
|
||||
2 2 3
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT 1 a UNION select 2) d
|
||||
GROUP BY a WITH ROLLUP;
|
||||
a SUM(a) SUM(a)+1
|
||||
1 1 2
|
||||
2 2 3
|
||||
NULL 3 4
|
||||
SELECT a, SUM(a), SUM(a)+1, CONCAT(SUM(a),'x'), SUM(a)+SUM(a), SUM(a)
|
||||
FROM (SELECT 1 a, 2 b UNION SELECT 2,3 UNION SELECT 5,6 ) d
|
||||
GROUP BY a WITH ROLLUP;
|
||||
a SUM(a) SUM(a)+1 CONCAT(SUM(a),'x') SUM(a)+SUM(a) SUM(a)
|
||||
1 1 2 1x 2 1
|
||||
2 2 3 2x 4 2
|
||||
5 5 6 5x 10 5
|
||||
NULL 8 9 8x 16 8
|
||||
DROP TABLE t1;
|
||||
|
@ -184,3 +184,27 @@ SELECT a, SUM(a) m FROM t1 GROUP BY a WITH ROLLUP;
|
||||
SELECT * FROM ( SELECT a, SUM(a) m FROM t1 GROUP BY a WITH ROLLUP ) t2;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Tests for bug #7914: ROLLUP over expressions on temporary table
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int(11));
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT a FROM t1 UNION select 2) d
|
||||
GROUP BY a;
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT a FROM t1 UNION select 2) d
|
||||
GROUP BY a WITH ROLLUP;
|
||||
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT 1 a UNION select 2) d
|
||||
GROUP BY a;
|
||||
SELECT a, SUM(a), SUM(a)+1 FROM (SELECT 1 a UNION select 2) d
|
||||
GROUP BY a WITH ROLLUP;
|
||||
|
||||
SELECT a, SUM(a), SUM(a)+1, CONCAT(SUM(a),'x'), SUM(a)+SUM(a), SUM(a)
|
||||
FROM (SELECT 1 a, 2 b UNION SELECT 2,3 UNION SELECT 5,6 ) d
|
||||
GROUP BY a WITH ROLLUP;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
|
@ -1181,7 +1181,7 @@ JOIN::exec()
|
||||
}
|
||||
curr_all_fields= &tmp_all_fields1;
|
||||
curr_fields_list= &tmp_fields_list1;
|
||||
set_items_ref_array(items1);
|
||||
curr_join->set_items_ref_array(items1);
|
||||
|
||||
if (sort_and_group || curr_tmp_table->group)
|
||||
{
|
||||
@ -1314,7 +1314,7 @@ JOIN::exec()
|
||||
}
|
||||
curr_fields_list= &curr_join->tmp_fields_list2;
|
||||
curr_all_fields= &curr_join->tmp_all_fields2;
|
||||
set_items_ref_array(items2);
|
||||
curr_join->set_items_ref_array(items2);
|
||||
curr_join->tmp_table_param.field_count+=
|
||||
curr_join->tmp_table_param.sum_func_count;
|
||||
curr_join->tmp_table_param.sum_func_count= 0;
|
||||
@ -1375,7 +1375,7 @@ JOIN::exec()
|
||||
}
|
||||
curr_fields_list= &tmp_fields_list3;
|
||||
curr_all_fields= &tmp_all_fields3;
|
||||
set_items_ref_array(items3);
|
||||
curr_join->set_items_ref_array(items3);
|
||||
|
||||
if (curr_join->make_sum_func_list(*curr_all_fields, *curr_fields_list,
|
||||
1) || thd->is_fatal_error)
|
||||
|
Reference in New Issue
Block a user