mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
5bc137ff17
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.
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
|