On 3/30/11 1:04 PM, Alexander Nozdrin wrote:
> #Atfile:///home/alik/MySQL/bzr/00/bug55847/mysql-trunk-bug55847/ based
> 3350 Alexander Nozdrin 2011-03-30
> A patch for Bug#11763166 (55847: SHOW WARNINGS returns empty
> result set when SQLEXCEPTION is active.
> The problem was in a hackish THD::no_warnings_for_error attribute.
> When it was set, an error was not written to Warning_info -- only
> Diagnostics_area state was changed. That means, Diagnostics_area
> might contain error state, which is not present in Warning_info.
> The user-visible problem was that in some cases SHOW WARNINGS
> returned empty result set (i.e. there were no warnings) while
> the previous SQL statement failed. According to the MySQL
> protocol errors must be presented in warning list.
> The main idea of this patch is to remove THD::no_warnings_for_error.
> There were few places where it was used:
> - sql_admin.cc, handling of REPAIR TABLE USE_FRM.
> - sql_show.cc, when calling fill_schema_table_from_frm().
> - sql_show.cc, when calling fill_table().
> The fix is to either use internal-error-handlers, or to use
> temporary Warning_info storing warnings, which might be ignored.
> This patch is needed to fix Bug 11763162 (55843).
OK to push. Thanks for working on this.