mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 07:14:17 +01:00
aaf6acae9b
to NULL For queries of the form SELECT MIN(key_part_k) FROM t1 WHERE key_part_1 = const and ... and key_part_k-1 = const, the opt_sum_query optimization tries to use an index to substitute MIN/MAX functions with their values according to the following rules: 1) Insert the minimum non-null values where the WHERE clause still matches, or 3) A row of nulls However, the correct semantics requires that there is a third case 2) such that a NULL value is substituted if there are only NULL values for key_part_k. The patch modifies opt_sum_query() to handle this missing case. mysql-test/r/func_group.result: Bug #27573: Correct result mysql-test/t/func_group.test: Bug #27573: test case sql/opt_sum.cc: Bug #27573: Added code that will try to read the first non-null value for a given complete-field prefix, second choice is to read the null, and lastly set the error code if no row is found.
35 lines
1.2 KiB
Text
35 lines
1.2 KiB
Text
set autocommit=1;
|
|
reset master;
|
|
create table bug16206 (a int);
|
|
insert into bug16206 values(1);
|
|
start transaction;
|
|
insert into bug16206 values(2);
|
|
commit;
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
|
|
f n Query 1 n use `test`; create table bug16206 (a int)
|
|
f n Query 1 n use `test`; insert into bug16206 values(1)
|
|
f n Query 1 n use `test`; insert into bug16206 values(2)
|
|
drop table bug16206;
|
|
reset master;
|
|
create table bug16206 (a int) engine= bdb;
|
|
insert into bug16206 values(0);
|
|
insert into bug16206 values(1);
|
|
start transaction;
|
|
insert into bug16206 values(2);
|
|
commit;
|
|
insert into bug16206 values(3);
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
|
|
f n Query 1 n use `test`; create table bug16206 (a int) engine= bdb
|
|
f n Query 1 n use `test`; insert into bug16206 values(0)
|
|
f n Query 1 n use `test`; insert into bug16206 values(1)
|
|
f n Query 1 n use `test`; BEGIN
|
|
f n Query 1 n use `test`; insert into bug16206 values(2)
|
|
f n Query 1 n use `test`; COMMIT
|
|
f n Query 1 n use `test`; insert into bug16206 values(3)
|
|
drop table bug16206;
|
|
set autocommit=0;
|
|
End of 5.0 tests
|