Hi!
>>>>> "Guilhem" == Guilhem Bichot <guilhem@stripped> writes:
<cut>
>> 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.
Guilhem> On Dec 20 2007 we did a MyISAM->Maria merge.
Guilhem> Back from Orlando (20 Jan 2008) I ran all tests with
Guilhem> --default-storage-engine=maria, inspected all test results, and found
Guilhem> no issue.
Guilhem> On March 25 I discovered, because I was looking at some code portion,
Guilhem> that the merge of Dec 20 had missed some MyISAM changes. Which had not
Guilhem> been caught by running the testsuite with
Guilhem> --default-storage-engine=maria, as we have seen.
Guilhem> Jani and you then made a diff and fixed the bugs; they were:
Guilhem> Bug#28837 MyISAM storage engine error (134) doing delete with self-join
Guilhem> Bug#31277 myisamchk --unpack corrupts table
Guilhem> Bug#4692 DISABLE/ENABLE KEYS waste a space
Guilhem> Bug#31305 myisam tables crash when they are near capacity
Guilhem> which are important bugs (corruption, errors). They were all missed
Guilhem> during the Dec 20 merge (they were all fixed before Dec 20 in
Guilhem> 5.1-main, some even in November).
This happend becasuse on the December merge we did not move any MyISAM
fixes to Maria. This has now been done.
Guilhem> So, maybe most major bug fixes in MyISAM have test cases, as you say,
Guilhem> but truly some don't have, as the example shows. Running with
Guilhem> --default-storage-engine=maria missed all above ones; it thus is not a
Guilhem> good *enough* verification that Maria parts are ok.
Guilhem> Whereas looking at Maria code (which I did) caught BUG#4692, which led
Guilhem> you and Jani to generate a diff, which led to fixing the bugs.
Guilhem> So I still believe that generating a diff before the big merge into
Guilhem> 6.0, is necessary. It may take a while to read this diff (actually,
Guilhem> I'd rather have a look at it from a GUI like kdiff3), it is clear that
Guilhem> we won't catch all mistakes because some code has diverged, but we can
Guilhem> catch some.
Guilhem> If you think it is worthless, then I'll put it on my personal to-do
Guilhem> list (but I may still involve you for explaining the differences which
Guilhem> I don't understand).
I didn't say it's worthless. I said that for the main code it's
probably not needed but we can do it anyway just to be safe.
However to do a diff between Maria and MyISAM there is now so many
differences this will be extremely hard to do and I don't think it's
worth it. If don't mind you doing it if you really want to.
Regards,
Monty