I can give a concrete example.
On Fri, Apr 25, 2008 at 10:23:29PM +0300, Michael Widenius wrote:
> >>>>> "Guilhem" == Guilhem Bichot <guilhem@stripped> writes:
> Guilhem> Hello,
> Guilhem> Jani was saying today that of all these merges of 5.1-main into
> Guilhem> 5.1-maria, that we have done over the last two years, some may have
> Guilhem> introduced problems (wrong merges). I agree with him. I think that we
> Guilhem> should not port these problems into 6.0-main when we, in a few weeks
> Guilhem> hopefully, merge 5.1-maria into 6.0-main.
> Guilhem> So I suggest that once we are code-complete for Maria version 1.5 (all
> Guilhem> tasks pushed), we, instead of pushing immediately into 6.0-main (or
> Guilhem> 6.0-maria to be created), take the time to do this:
> Guilhem> 3) do a diff between 5.1-maria/storage/myisam and
> Guilhem> 5.1-maria/storage/maria and a review of it (as we have seen in the
> Guilhem> past that we sometimes forgot to merge MyISAM into Maria); this will
> Guilhem> be difficult because some reworking was done into Maria, but I believe
> Guilhem> we still have to do it.
> I don't think this part is possible anymore. Too much changes to do
> any decent comparison in a reasonable time.
> Assuming that most major bug fixes in MyISAM have test cases, we
> already have a good verification that Maria parts are ok by running
> all tests with the Maria engine.
On Dec 20 2007 we did a MyISAM->Maria merge.
Back from Orlando (20 Jan 2008) I ran all tests with
--default-storage-engine=maria, inspected all test results, and found
On March 25 I discovered, because I was looking at some code portion,
that the merge of Dec 20 had missed some MyISAM changes. Which had not
been caught by running the testsuite with
--default-storage-engine=maria, as we have seen.
Jani and you then made a diff and fixed the bugs; they were:
Bug#28837 MyISAM storage engine error (134) doing delete with self-join
Bug#31277 myisamchk --unpack corrupts table
Bug#4692 DISABLE/ENABLE KEYS waste a space
Bug#31305 myisam tables crash when they are near capacity
which are important bugs (corruption, errors). They were all missed
during the Dec 20 merge (they were all fixed before Dec 20 in
5.1-main, some even in November).
So, maybe most major bug fixes in MyISAM have test cases, as you say,
but truly some don't have, as the example shows. Running with
--default-storage-engine=maria missed all above ones; it thus is not a
good *enough* verification that Maria parts are ok.
Whereas looking at Maria code (which I did) caught BUG#4692, which led
you and Jani to generate a diff, which led to fixing the bugs.
So I still believe that generating a diff before the big merge into
6.0, is necessary. It may take a while to read this diff (actually,
I'd rather have a look at it from a GUI like kdiff3), it is clear that
we won't catch all mistakes because some code has diverged, but we can
If you think it is worthless, then I'll put it on my personal to-do
list (but I may still involve you for explaining the differences which
I don't understand).
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Mr. Guilhem Bichot <guilhem@stripped>
/ /|_/ / // /\ \/ /_/ / /__ Sun Microsystems, Lead Software Engineer
/_/ /_/\_, /___/\___\_\___/ Bordeaux, France