Commit 5dcbf248 authored by unknown's avatar unknown

A fix. (Bug #3376: AVG(constant) returns constant if no rows in result set)

parent a5d016ec
...@@ -256,3 +256,8 @@ bit_and(col) bit_or(col) ...@@ -256,3 +256,8 @@ bit_and(col) bit_or(col)
18446744073709551614 18446744073709551614 18446744073709551614 18446744073709551614
18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
drop table t1; drop table t1;
create table t1 (a int);
select avg(2) from t1;
avg(2)
NULL
drop table t1;
...@@ -155,3 +155,11 @@ insert into t1 values (-1), (-2), (-3); ...@@ -155,3 +155,11 @@ insert into t1 values (-1), (-2), (-3);
select bit_and(col), bit_or(col) from t1; select bit_and(col), bit_or(col) from t1;
select SQL_BIG_RESULT bit_and(col), bit_or(col) from t1 group by col; select SQL_BIG_RESULT bit_and(col), bit_or(col) from t1 group by col;
drop table t1; drop table t1;
#
# Bug #3376: avg() and an empty table
#
create table t1 (a int);
select avg(2) from t1;
drop table t1;
...@@ -249,6 +249,7 @@ class Item_sum_avg :public Item_sum_num ...@@ -249,6 +249,7 @@ class Item_sum_avg :public Item_sum_num
void update_field(); void update_field();
Item *result_item(Field *field) Item *result_item(Field *field)
{ return new Item_avg_field(this); } { return new Item_avg_field(this); }
void no_rows_in_result() {}
const char *func_name() const { return "avg"; } const char *func_name() const { return "avg"; }
unsigned int size_of() { return sizeof(*this);} unsigned int size_of() { return sizeof(*this);}
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment