List:Commits« Previous MessageNext Message »
From:Sergey Vojtovich Date:December 2 2010 8:06pm
Subject:Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350)
Bug#48183
View as plain text  
Hi Alfranio,

On Thu, Dec 02, 2010 at 06:33:04PM +0000, Alfranio Correia wrote:
> Hi Libing,
> 
> Sergey is right on his comments on the unsafe statements.
> 
> There are two flags. One that indicates that a statement is unsafe
> (i.e. unsafe_flags) and as such a warning message will be issued if
> the STMT format is in use and the execution will switch from
> statement to
> row if the MIXED format is in use.
> 
> The second flag (i.e binlog_unsafe_warning_flags) is a copy of the
> first and is used only when the STMT format is in use and triggers
> warning messages.
> 
> We set the "unsafe_flags" by calling
> 
> thd->lex->set_stmt_unsafe((LEX::BINLOG_STMT_UNSAFE_PLUGIN);
> 
> and in int THD::decide_logging_format(TABLE_LIST *tables)
> the unsafe_flags is automatically copied to binlog_unsafe_warning_flags
> if necessary.
> 
> There is no need to remove the comma in the enum as this is portable
> as far as I know but I don't have a strong opinion on that.
I have no strong opinion either. As well as I have no proof that trailing
comma is not portable.

But I think I saw patches removing trailing commas many times. Can't
remember exact patches, but likely against backup, Falcon, InnoDB or NDB.

Regards,
Sergey

> 
> Cheers.
> 
> On 12/02/2010 02:04 PM, Sergey Vojtovich wrote:
> >Hi Li-Bing,
> >
> >On Thu, Dec 02, 2010 at 12:44:00PM +0800, Libing Song wrote:
> >
> >...skip...
> >
> >>>>>Also, being non-replication guy, I'm a bit confused: you set
> unsafe
> >>>>>warning flag, but you don't really mark statement unsafe? If it
> is
> >>>>>done implicitely, could you point me to that code?
> >>>>binlog_query() calls issue_unsafe_warnings().
> issue_unsafe_warnings()
> >>>>checks this flag and then generates different unsafe warnings.
> >>>Right, it generates different unsafe warnings. But I don't see how it
> >>>marks statement unsafe.
> >>First, lex->set_stmt_unsafe() are called by yacc.yy and some functions
> >>(eg. uuid, rand)when they are initializing.
> >Right. But we don't call set_stmt_unsafe() for MATCH()?
> >
> >>Second, after opening all tables related to a statement,
> >>decide_logging_format() are called to decide what binlog format should
> >>be used in current statement.
> >>decide_logging_format() will copy the unsafe flags marked by
> >>lex->set_stmt_unsafe to thd->binlog_unsafe_warning_flags if
> >>the statement has to be binlogged in statement format.
> >Please don't be blocked by this question. I'm just trying to educate
> >myself.
> >
> >Could you correct me where I'm wrong:
> >   I read bug report and I see that unsafe statements are to be logged
> >   in row format if binlog_format=mixed or cause a warning to be generated
> >   if binlog_format=statement.
> >   Also I see that it is suggested to mark MATCH() using plugin unsafe.
> >   I read your patch and see that a warning is generated if binlog_format
> >   is statement.
> >   I can see that you achieve it by setting binlog_unsafe_warning_flags.
> >   But in mixed mode you still log MATCH() in statement format, because
> >   binlog_stmt_flags is unaffected. It is contradicting to the requirement
> >   listed in the bug report.
> >
> >Probably it is a good idea to test mixed mode as well. At least to avoid
> >questions like this.
> >
> >Regards,
> >Sergey
> 
> 
> -- 
> MySQL Code Commits Mailing List
> For list archives: http://lists.mysql.com/commits
> To unsubscribe:    http://lists.mysql.com/commits?unsub=1
> 

-- 
Sergey Vojtovich <svoj@stripped>
MySQL AB, Software Engineer
Izhevsk, Russia, www.mysql.com
Thread
bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183Li-Bing.Song23 Nov
  • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183He Zhenxing29 Nov
  • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350)Bug#48183Sergey Vojtovich29 Nov
    • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183Libing Song1 Dec
      • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350)Bug#48183Sergey Vojtovich1 Dec
        • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183Libing Song2 Dec
          • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350)Bug#48183Sergey Vojtovich2 Dec
            • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183Alfranio Correia2 Dec
              • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350)Bug#48183Sergey Vojtovich2 Dec
            • Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183Libing Song3 Dec