List:Commits« Previous MessageNext Message »
From:Libing Song Date:December 3 2010 4:31am
Subject:Re: bzr commit into mysql-trunk branch (Li-Bing.Song:3350) Bug#48183
View as plain text  
On Thu, 2010-12-02 at 17:04 +0300, 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()?
We cannot do that. As at that time we don't know if it uses mysql
default fulltext search plugin or not.

> > 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

-- 
Your Sincerely,
Libing Song
==================================
MySQL Replication Team
Software Engineer


Email : Li-Bing.Song@stripped
Skype : libing.song
MSN   : slb_database@stripped
Phone : +86 010-6505-4020 ext. 319
Mobile: +86 138-1144-2038
==================================

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