← Back to team overview

maria-developers team mailing list archive

Re: 17548c8a8b6: MDEV-25477 Auto-create breaks replication when triggering event was not replicated

 

Hi Sergei,

On Sun, Apr 17, 2022 at 8:48 PM Sergei Golubchik <serg@xxxxxxxxxxx> wrote:
>
> Hi, Aleksey,
>
> > I attached the patch and this still fails rpl.create_or_replace_row.
>
> small mistake in the patch:
>
> > --- a/sql/sql_class.h
> > +++ b/sql/sql_class.h
> > @@ -2916,7 +2916,7 @@ class THD: public THD_count, /* this must be first */
> >
> >    bool binlog_need_stmt_format(bool is_transactional) const
> >    {
> > -    return vers_created_partitions && !binlog_get_pending_rows_event(is_transactional);
> > +    return !binlog_get_pending_rows_event(is_transactional);
>
> if you put here
>
>       log_current_statement && !binlog_get_pending_rows_event(is_transactional)
>
> then all tests pass.
>
> >    }
> >
> >    bool binlog_for_noop_dml(bool transactional_table);
>
> > Why don't you like vers_created_partitions? It might be useful info
> > for debugging and for new features.
>
> I have a second patch that renames flags to have a very well-defined
> meaning and name.
>
>   OPTION_KEEP_LOG -> OPTION_BINLOG_THIS_TRX
>   log_current_statement -> OPTION_BINLOG_THIS_STMT

Where is your patch?

>
> the first flag means that when a transaction is rolled back, it's
> written to binlog with ROLLBACK at the end, not discarded.
>
> The second means that the statement is written to binlog (or binlog trx
> cache) even if it otherwise wouldn't be.
>
> So, two flags. Clear names and semantics. "vers_created_partitions" fits
> into the second use case, so one should use OPTION_BINLOG_THIS_STMT for it.
>
> Regards,
> Sergei
> VP of MariaDB Server Engineering
> and security@xxxxxxxxxxx



-- 
@midenok


Follow ups

References