Hi Libing,
Thanks for spotting that. I wonder where I got BUG#47442 from :-) It
should be BUG#28086. I have re-committed the patch.
/Sven
Libing Song wrote:
> Sven Sandberg wrote:
>
> Nice work. Only one comment.
>
>> === modified file 'sql/item_strfunc.cc'
>> --- a/sql/item_strfunc.cc 2009-09-10 10:30:03 +0000
>> +++ b/sql/item_strfunc.cc 2009-11-02 11:00:49 +0000
>> @@ -1827,8 +1827,9 @@ String *Item_func_database::val_str(Stri
>>
>>
>> /**
>> - @todo
>> - make USER() replicate properly (currently it is replicated to "")
>> + @note USER() is replicated correctly if binlog_format=ROW or (as of
>> + BUG#47442) binlog_format=MIXED, but incorrectly replicated to '' if
>> + binlog_format=STATEMENT.
>> */
>>
> Do you sure it is bug#47442 ?
>> bool Item_func_user::init(const char *user, const char *host)
>> {
>>
>> === modified file 'sql/sql_yacc.yy'
>> --- a/sql/sql_yacc.yy 2009-09-30 19:37:52 +0000
>> +++ b/sql/sql_yacc.yy 2009-11-02 11:00:49 +0000
>> @@ -7523,6 +7523,14 @@ function_call_nonkeyword:
>> }
>> | SYSDATE optional_braces
>> {
>> + /*
>> + Unlike other time-related functions, SYSDATE() is
>> + replication-unsafe because it is not affected by the
>> + TIMESTAMP variable. It is unsafe even if
>> + sysdate_is_now=1, because the slave may have
>> + sysdate_is_now=0.
>> + */
>> + Lex->set_stmt_unsafe();
>> if (global_system_variables.sysdate_is_now == 0)
>> $$= new (YYTHD->mem_root) Item_func_sysdate_local();
>> else
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>
>
--
Sven Sandberg, Software Engineer
MySQL AB, www.mysql.com