From: Date: March 17 2005 12:55am Subject: bk commit into 4.1 tree (igor:1.2122) BUG#8615 List-Archive: http://lists.mysql.com/internals/23119 X-Bug: 8615 Message-Id: <20050316235511.AD89BECFE1@rurik.mysql.com> Below is the list of changes that have just been committed into a local 4.1 repository of igor. When igor does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.2122 05/03/16 15:55:04 igor@stripped +3 -0 olap.result, olap.test: Added a test for bug #8615. sql_select.cc: Fixed bug #8615. This fix only removed the cause of the reported crash. It does not resolve other problems of rollup queries with DISTINCT. They were fixed in the previous patch for bug 8616. mysql-test/r/olap.result 1.14 05/03/16 15:51:55 igor@stripped +18 -0 Added a test for bug #8615. mysql-test/t/olap.test 1.11 05/03/16 15:51:24 igor@stripped +4 -1 Added a test for bug #8615. sql/sql_select.cc 1.387 05/03/16 15:50:06 igor@stripped +4 -3 Fixed bug #8615. This fix only removed the cause of the reported crash. It does not resolve other problems of rollup queries with DISTINCT. They were fixed in the previous patch for bug 8616. # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: igor # Host: rurik.mysql.com # Root: /home/igor/dev/mysql-4.1-0 --- 1.386/sql/sql_select.cc Tue Mar 15 22:44:45 2005 +++ 1.387/sql/sql_select.cc Wed Mar 16 15:50:06 2005 @@ -1269,7 +1269,6 @@ { DBUG_VOID_RETURN; } - curr_join->group_list= 0; } thd->proc_info="Copying to group table"; @@ -1289,8 +1288,10 @@ } } if (curr_join->make_sum_func_list(*curr_all_fields, *curr_fields_list, - 1) || - (tmp_error= do_select(curr_join, (List *) 0, curr_tmp_table, + 1)) + DBUG_VOID_RETURN; + curr_join->group_list= 0; + if ((tmp_error= do_select(curr_join, (List *) 0, curr_tmp_table, 0))) { error= tmp_error; --- 1.13/mysql-test/r/olap.result Tue Mar 15 22:49:41 2005 +++ 1.14/mysql-test/r/olap.result Wed Mar 16 15:51:55 2005 @@ -360,4 +360,22 @@ 6 2 4 4 1 4 14 3 9 +SELECT a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP; +a sum(b) +1 4 +1 4 +2 2 +2 4 +2 6 +4 4 +4 4 +NULL 14 +SELECT DISTINCT a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP; +a sum(b) +1 4 +2 2 +2 4 +2 6 +4 4 +NULL 14 DROP TABLE t1; --- 1.10/mysql-test/t/olap.test Tue Mar 15 22:49:21 2005 +++ 1.11/mysql-test/t/olap.test Wed Mar 16 15:51:24 2005 @@ -126,7 +126,7 @@ DROP TABLE user_day; # -# Test for bug #8616: distinct sum with rollup +# Tests for bugs #8616, #8615: distinct sum with rollup # CREATE TABLE t1 (a int, b int); @@ -149,6 +149,9 @@ SELECT SUM(b), COUNT(DISTINCT b), COUNT(*) FROM t1 GROUP BY a WITH ROLLUP; SELECT DISTINCT SUM(b), COUNT(DISTINCT b), COUNT(*) FROM t1 GROUP BY a WITH ROLLUP; + +SELECT a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP; +SELECT DISTINCT a, sum(b) FROM t1 GROUP BY a,b WITH ROLLUP; DROP TABLE t1;