Loading mysql-test/r/bdb_notembedded.result 0 → 100644 +35 −0 Original line number Diff line number Diff line 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 mysql-test/t/bdb_notembedded.test 0 → 100644 +38 −0 Original line number Diff line number Diff line -- source include/not_embedded.inc -- source include/have_bdb.inc # # Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode # set autocommit=1; let $VERSION=`select version()`; reset master; create table bug16206 (a int); insert into bug16206 values(1); start transaction; insert into bug16206 values(2); commit; --replace_result $VERSION VERSION --replace_column 1 f 2 n 5 n show binlog events; 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); --replace_result $VERSION VERSION --replace_column 1 f 2 n 5 n show binlog events; drop table bug16206; set autocommit=0; --echo End of 5.0 tests storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -602,6 +602,24 @@ Dbtup::scanNext(Signal* signal, ScanOpPtr scanPtr) if (lcp && lcp_list != RNIL) goto found_lcp_keep; switch(pos.m_get){ case ScanPos::Get_next_tuple: case ScanPos::Get_next_tuple_fs: jam(); key.m_page_idx += size; // fall through case ScanPos::Get_tuple: case ScanPos::Get_tuple_fs: jam(); /** * We need to refetch page after timeslice */ pos.m_get = ScanPos::Get_page; break; default: break; } while (true) { switch (pos.m_get) { case ScanPos::Get_next_page: Loading Loading
mysql-test/r/bdb_notembedded.result 0 → 100644 +35 −0 Original line number Diff line number Diff line 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
mysql-test/t/bdb_notembedded.test 0 → 100644 +38 −0 Original line number Diff line number Diff line -- source include/not_embedded.inc -- source include/have_bdb.inc # # Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode # set autocommit=1; let $VERSION=`select version()`; reset master; create table bug16206 (a int); insert into bug16206 values(1); start transaction; insert into bug16206 values(2); commit; --replace_result $VERSION VERSION --replace_column 1 f 2 n 5 n show binlog events; 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); --replace_result $VERSION VERSION --replace_column 1 f 2 n 5 n show binlog events; drop table bug16206; set autocommit=0; --echo End of 5.0 tests
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -602,6 +602,24 @@ Dbtup::scanNext(Signal* signal, ScanOpPtr scanPtr) if (lcp && lcp_list != RNIL) goto found_lcp_keep; switch(pos.m_get){ case ScanPos::Get_next_tuple: case ScanPos::Get_next_tuple_fs: jam(); key.m_page_idx += size; // fall through case ScanPos::Get_tuple: case ScanPos::Get_tuple_fs: jam(); /** * We need to refetch page after timeslice */ pos.m_get = ScanPos::Get_page; break; default: break; } while (true) { switch (pos.m_get) { case ScanPos::Get_next_page: Loading