Hello,
On Mon, Jul 07, 2008 at 12:22:51PM +0200, Ingo Struewing wrote:
> 2651 Ingo Struewing 2008-07-07
> Post-merge fixes: Due to changed meta data locking, the backup kernel
> needs to open and lock the MyISAM tables for restore. This instance of
> the MyISAM table takes a local copy of status information. It writes it
> back at unlock. The MyISAM restore driver bypasses MyISAM functions and
> writes directly to the files. So we need to read the status information
> from disk into the table share and update the other instance's copy at
> end of restore.
> + }
> + if (mi_close(mi_info))
> + goto err;
> + goto end;
> +
> + err:
> + SET_STATE_TO_ERROR_AND_DBUG_RETURN;
> +
> + end :
> + do {} while (0); /* Empty statement, syntactically required. */
Thanks for this enormous hack. Good comments.
I'd put a "return;" instead of the "do {} while (0);",
or I'd remove "end:" as well.
I wonder: Table_restore::post_restore() (which may include a repair)
runs after the pieces which you fixed above. So, does a last bug lurk
there?
--
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Mr. Guilhem Bichot <guilhem@stripped>
/ /|_/ / // /\ \/ /_/ / /__ MySQL France, Lead Software Engineer
/_/ /_/\_, /___/\___\_\___/ Bordeaux, France
<___/ www.mysql.com