mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for BUG#6976:
In Item_ref::Item_ref set maybe_null (and other fields fix_fields sets) to be the same as in (*ref), because Item_ref::fix_fields() will not be called. Previously maybe_null was 0 always and this produced a bogus state where maybe_null==0 && is_null() == true which broke evaluation for some upper-level Items, like AND and OR. mysql-test/r/group_by.result: Test for BUG#6976 mysql-test/t/group_by.test: Test for BUG#6976 sql/item.cc: Comment added sql/item.h: Fix for BUG#6976: in Item_ref::Item_ref(Item**...) fix all fields because fix_fields() will not be called.
This commit is contained in:
@ -626,3 +626,15 @@ explain SELECT i, COUNT(DISTINCT(i)) FROM t1 GROUP BY j ORDER BY NULL;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL NULL NULL NULL NULL 6 Using filesort
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values(null);
|
||||
select min(a) is null from t1;
|
||||
min(a) is null
|
||||
1
|
||||
select min(a) is null or null from t1;
|
||||
min(a) is null or null
|
||||
1
|
||||
select 1 and min(a) is null from t1;
|
||||
1 and min(a) is null
|
||||
1
|
||||
drop table t1;
|
||||
|
@ -447,3 +447,12 @@ INSERT INTO t1 VALUES (1,2),(2,3),(4,5),(3,5),(1,5),(23,5);
|
||||
SELECT i, COUNT(DISTINCT(i)) FROM t1 GROUP BY j ORDER BY NULL;
|
||||
explain SELECT i, COUNT(DISTINCT(i)) FROM t1 GROUP BY j ORDER BY NULL;
|
||||
DROP TABLE t1;
|
||||
|
||||
#Test for BUG#6976: Aggregate functions have incorrect NULL-ness
|
||||
create table t1 (a int);
|
||||
insert into t1 values(null);
|
||||
select min(a) is null from t1;
|
||||
select min(a) is null or null from t1;
|
||||
select 1 and min(a) is null from t1;
|
||||
drop table t1;
|
||||
|
||||
|
Reference in New Issue
Block a user