indeed, maybe something's mixed up I really think this should be a part of this fix (from "[6/8] store cache managers in a list") : > diff --git a/sql/handler.cc b/sql/handler.cc > index 8b95653e69f..8b22167e729 100644 > --- a/sql/handler.cc > +++ b/sql/handler.cc > @@ -6660,7 +6660,16 @@ static int binlog_log_row_online_alter(TABLE* table, > THD *thd= table->in_use; > > if (!table->online_alter_cache) > - table->online_alter_cache= thd->binlog_setup_cache_data(); > + { > + auto *cache_mngr= online_alter_binlog_get_cache_mngr(thd, table); > + // Use transaction cache directly, if it is not multi-transaction mode > + table->online_alter_cache= binlog_get_cache_data(cache_mngr, > + !thd->in_multi_stmt_ transaction_mode()); > + > + trans_register_ha(thd, false, binlog_hton, 0); > + if (thd->in_multi_stmt_transaction_mode()) > + trans_register_ha(thd, true, binlog_hton, 0);
But anyway it is going to be a fixup, so whatever. I am only sorry for confusion. The way to test with and without binlog is to rename .test in .inc and make a new test: one that sources have_binlog.inc, and one that doesn't. I don't like putting tests in .inc, so decided to leave only one version of it. Maybe that's wrong But what about sourcing a .test file? On Mon, 15 Nov 2021 at 13:56, Sergei Golubchik <s...@mariadb.org> wrote: > Hi, Nikita! > > On Nov 15, Nikita Malyavin wrote: > > revision-id: 903ae1c03ae (mariadb-10.5.2-479-g903ae1c03ae) > > parent(s): a5fca9a6e30 > > author: Nikita Malyavin > > committer: Nikita Malyavin > > timestamp: 2021-01-27 17:28:05 +1000 > > message: > > > > Fix running without binlog > > Strange. With such a comment I'd expect you add a test for ALTER TABLE > with disabled binlog. Instead you change an error to a warning in one of > the existing tests. This test change doesn't match the commit comment. > > > diff --git a/mysql-test/suite/binlog/r/online_alter.result > b/mysql-test/suite/binlog/r/online_alter.result > > index 9bca94b8a87..bb3fa85e76c 100644 > > --- a/mysql-test/suite/binlog/r/online_alter.result > > +++ b/mysql-test/suite/binlog/r/online_alter.result > > @@ -34,9 +34,9 @@ insert into t1 values (123), (456), (789); > > set debug_sync= 'now SIGNAL end'; > > connection default; > > Warnings: > > -Error 1364 Field 'b' doesn't have a default value > > -Error 1364 Field 'b' doesn't have a default value > > -Error 1364 Field 'b' doesn't have a default value > > +Warning 1364 Field 'b' doesn't have a default value > > +Warning 1364 Field 'b' doesn't have a default value > > +Warning 1364 Field 'b' doesn't have a default value > > select * from t1; > > a b > > 5 0 > > diff --git a/sql/sql_table.cc b/sql/sql_table.cc > > index f0d1167ad61..e348056646d 100644 > > --- a/sql/sql_table.cc > > +++ b/sql/sql_table.cc > > @@ -11308,9 +11308,12 @@ static int online_alter_read_from_binlog(THD > *thd, rpl_group_info *rgi, > > break; > > > > ev->thd= thd; > > + bool abort_on_warning= thd->abort_on_warning; > > + thd->abort_on_warning= false; > > thd->set_n_backup_active_arena(&event_arena, &backup_arena); > > error= ev->apply_event(rgi); > > thd->restore_active_arena(&event_arena, &backup_arena); > > + thd->abort_on_warning= abort_on_warning; > > > > event_arena.free_items(); > > free_root(&event_mem_root, MYF(MY_KEEP_PREALLOC)); > > > Regards, > Sergei > VP of MariaDB Server Engineering > and secur...@mariadb.org > -- Yours truly, Nikita Malyavin
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp