konstantin@stripped wrote:
> ChangeSet@stripped, 2008-04-25 16:23:48+04:00, kostja@bodhi.(none) +5 -0
> Fix failure of error_simulation test in 'pst' build (prepared
> statements protocol + pool-of-threads).
>
> dbug/dbug.c@stripped, 2008-04-25 16:23:44+04:00, kostja@bodhi.(none) +12 -0
> Implement _db_is_pushed_() - a helper function that checks
> if session-specific settings have been set.
>
> include/my_dbug.h@stripped, 2008-04-25 16:23:45+04:00, kostja@bodhi.(none) +1 -0
> Declare _db_is_pushed_()
>
> sql/scheduler.cc@stripped, 2008-04-25 16:23:45+04:00, kostja@bodhi.(none) +22 -23
> Re-implement reset/restore of session-specific dbug settings in
> pool-of-thread scheduler. The old implementation would wrongly
> set empty settings in some cases.
>
> The new approach is to remember the current session-specific
> settings, if any, at thread detach, and restore at attach.
> The thread is always returned to the pool without session-specific
> settings.
>
> sql/scheduler.h@stripped, 2008-04-25 16:23:45+04:00, kostja@bodhi.(none) +2 -2
> Update declarations.
>
> sql/set_var.h@stripped, 2008-04-25 16:23:45+04:00, kostja@bodhi.(none) +11 -0
> Add a comment clarifying semantics of @@session.dbug
OK to push, one minor comment below.
[..]
> #ifndef DBUG_OFF
> - swap_dbug_explain();
> + /*
> + If during the session @@session.dbug was assigned, the
> + dbug options/state has been pushed. Check if this is the
> + case, to be able to restore the state when we attach this
> + logical connection to a physical thread.
> + */
> + if (_db_is_pushed_())
> + {
> + set_explain= TRUE;
> + DBUG_EXPLAIN(dbug_explain, sizeof(dbug_explain));
Would be nice to keep the sql_print_error so it doesn't fail silently in
case someone introduces a large keyword...
Regards,
--
Davi Arnaut, Software Engineer
MySQL Server Runtime Team
Database Group, Sun Microsystems