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

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.