From: Davi Arnaut Date: June 7 2011 5:46pm Subject: Re: bzr commit into mysql-trunk branch (alexander.nozdrin:3167) Bug#11763162 List-Archive: http://lists.mysql.com/commits/138811 Message-Id: <4DEE63E8.8020907@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Alexander, On 6/7/11 10:29 AM, Alexander Nozdrin wrote: > #At file:///home/alik/MySQL/bzr/00/bug55843/mysql-trunk-bug55843-01/ based on revid:alexander.nozdrin@stripped > > 3167 Alexander Nozdrin 2011-06-07 > Pre-requisite patch for Bug#11763162 (55843 - Handled condition > appears as not handled). > > The patch changes the relationship between THD, Diagnostics_area > and Warning_info classes: > > - before the patch, THD owned both Diagnostics_area and > Warning_info instances. > > - after the patch THD owns Diagnostics_area instance, > and Diagnostics_area owns Warning_info instance. What will be the consequence of this to code that manipulated only of of the two? Did we have any case where a Diagnostcs_area was pushed but not a new Warning_info area? or vice versa? or only the main warning info area is now owned by Diagnostics_area? > The patch changes THD::get_warning_info() so that it still > works (to save code changes) and eliminates THD::set_warning_info(). > Users should use Diagnostics_area::set_warning_info() instead. Please also explain why this is necessary and what is the ultimate goal to be achieved. Otherwise, it's a quite hard to see where we are going with those changes. > modified: > sql/rpl_master.cc > sql/sp_head.cc > sql/sql_admin.cc > sql/sql_class.cc > sql/sql_class.h > sql/sql_error.cc > sql/sql_error.h > sql/sql_prepare.cc > sql/sql_prepare.h > sql/sql_show.cc > === modified file 'sql/rpl_master.cc' > --- a/sql/rpl_master.cc 2011-06-07 13:09:47 +0000 > +++ b/sql/rpl_master.cc 2011-06-07 13:29:37 +0000 > @@ -648,7 +648,7 @@ void mysql_binlog_send(THD* thd, char* l > ER_MASTER_FATAL_ERROR_READING_BINLOG will be set to the original > Diagnostics_area. > */ > - Diagnostics_area temp_da; > + Diagnostics_area temp_da(0, false); Preserve the original constructor. Regards, Davi