Hi Sergey,
Sergey Vojtovich, 03.02.2009 14:18:
...
> With the test case attached to the bug report, we're opening child table
> earlier (creating myisam share and calling my_readlink()). When we're
> opening correct merge table afterwards, we're just creating another
> instance of myisam, bypassing share creation and magic my_readlink() call,
> which we were relying on. In other words my_errno is still
> HA_ERR_WRONG_MRG_TABLE_DEF.
>
> Back to myrg_open() we check if (my_errno == HA_ERR_WRONG_MRG_TABLE_DEF) and
> enter this branch.
Aha! Now I understand. Thank you very much for your patience and all the
explanations.
>
> The fix introduces a boolean flag, so we don't rely on my_errno and magic
> my_readlink() anymore.
Agree. Patch approved. However, I would be happy, if you add to the
revision comment that myrg_open() internally used my_errno as a variable
for determining failure, and thus could be tricked into a wrong decision
by other uses of my_errno.
Regards
Ingo
--
Ingo Strüwing, Database Group
Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten
Geschäftsführer: Thomas Schröder, Wolfgang Engels, Dr. Roland Bömer
Vorsitzender des Aufsichtsrates: Martin Häring HRB München 161028