← Back to team overview

maria-developers team mailing list archive

Re: Rev 4077: MDEV-4856 SQL_ERROR_LOG shows 1146 errors which didnt appear in mysql client

 

Hi, Holyfoot!

On Feb 22, holyfoot@xxxxxxxxxxxx wrote:
> revno: 4077
> revision-id: holyfoot@xxxxxxxxxxxx-20140222173543-xkzlp5rpga41evur
> parent: svoj@xxxxxxxxxxx-20140218065405-vw3bfhvhrfjsc6hh
> committer: Alexey Botchkov <holyfoot@xxxxxxxxxxxx>
> branch nick: mdev-4856
> timestamp: Sat 2014-02-22 21:35:43 +0400
> message:
>   MDEV-4856 SQL_ERROR_LOG shows 1146 errors which didnt appear in mysql client.
>       The fill_schema_table() function used to call get_table_share()
>       for a table name in WHERE then clear the error list. That way
>       plugins receive the superfluous error notification if it happens
>       in it. Also the problem was that error handler didn't prevent
>       the suppressed error message from logging anyway as the logging
>       happens in THD::raise_condition before the handler call.
>       Fixed by adding the Warnings_only_error_handler before the call.
>       raise_condition() also fixed.  The Internal_error_handler class
>       was exteded with virtual functions to handle storing the error
>       message.

This looks too complex to me. Why would you extend the base
Internal_error_handler class - no other error handler did that or needed
that, fwiw.

I'd simply push an error handler, store the first message there and
access it in get_schema_tables_record() via THD::get_internal_handler().

Regards,
Sergei


Follow ups