1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Fixed bug #14274: a query with a having clause containing only set function returned a wrong result set.

mysql-test/r/having.result:
  Added a test case for bug #14274.
mysql-test/t/having.test:
  Added a test case for bug #14274.
sql/sql_select.cc:
  Fixed bug #14274: a query with a having clause containing only set function returned a wrong result set.
  It happened because processing of the set functions in having started with a call of the split_sum_func
  method, instead of the split_sum_func2 method.
This commit is contained in:
unknown
2006-01-07 23:00:06 -08:00
parent f577d864cd
commit 770e0e8118
3 changed files with 26 additions and 1 deletions

View File

@ -128,3 +128,16 @@ id description c
1 test 0 1 test 0
2 test2 0 2 test2 0
drop table t1,t2,t3; drop table t1,t2,t3;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (3), (4), (1), (3), (1);
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a)>0;
SUM(a)
2
6
4
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a);
SUM(a)
2
6
4
DROP TABLE t1;

View File

@ -123,4 +123,16 @@ group by a.id, a.description
having (a.description is not null) and (c=0); having (a.description is not null) and (c=0);
drop table t1,t2,t3; drop table t1,t2,t3;
#
# Bug #14274: HAVING clause containing only set function
#
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (3), (4), (1), (3), (1);
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a)>0;
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a);
DROP TABLE t1;
# End of 4.1 tests # End of 4.1 tests

View File

@ -287,7 +287,7 @@ JOIN::prepare(Item ***rref_pointer_array,
if (having_fix_rc || thd->net.report_error) if (having_fix_rc || thd->net.report_error)
DBUG_RETURN(-1); /* purecov: inspected */ DBUG_RETURN(-1); /* purecov: inspected */
if (having->with_sum_func) if (having->with_sum_func)
having->split_sum_func(thd, ref_pointer_array, all_fields); having->split_sum_func2(thd, ref_pointer_array, all_fields, &having);
} }
// Is it subselect // Is it subselect