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