Hi Christophe,

Thanks for the quick reply!

Christophe Lombart wrote:

Yes, this unit test check the engine transactionnal behavior.
Now, I understand why Roy, Herman and you cannot build Graffito. Old
MySql version can provide transactionnal issues if it is not well
configured.

I recommend to use MySql 4.1.12 / MySql connection 3.1.8.
I will update the Graffito site with this info.
I'm using this MySql version on XP and I didn't this kind of issues.

Can you try with MySql 4.1.12/mysql connection 3.1.8 ? We should check
in the MySql doc what are the differencies between 4.0.x and 4.1.x

I've upgraded to the 4.1.12a binary package and now get a clean build when using InnoDB - thanks. I accidentally picked up the older version of MySQL rather than the newer, but at least it's highlighted the dependency.

For others hoping to get going, I used the following settings in the instance configuration wizard:

* Developer machine
* Transactional Database Only
* Tablespaces on installation path
* 30 concurrent connections
* TCP/IP networking enabled
* UTF8 character set support
* Install as Windows service
* Include Bin Directory in Windows PATH

Although I think any settings except selecting "non-transactional database only" would work, as the default table type is now InnoDB rather than MyISAM in all other cases (since late 4.1.x) and it's this new version of InnoDB that fixes the problem.

I've played around with manually executing the SQL, and found the apparent reason for the difference between versions: 4.1.12 seems to automatically create the index required when creating the foreign key constraint - as mentioned earlier, the 4.0.x version I had didn't do this and just errors if the index doesn't exist. The MySQL docs still describe the 4.0.x behaviour and are out of date. I have quickly checked the changelogs for MySQL and InnoDB between the two versions and can't see anything specifically referencing this change - however, there have been _lots_ of other changes around InnoDB foreign keys, so one of these may have had this side effect. (or I could have missed something...)

I still think it might be worth adding explicitly defined indexes in the Graffito schema, though. This would allow Graffito to work with 4.0.x with InnoDB, and also ensure that performance is reasonable on other databases that don't rely on and therefore automatically create indexes. This includes Oracle and MS SQL Server at least from a quick Google.

Again, I'm happy to take this on and test with MySQL 4.0.x if you're willing to commit the changes for me. If you want, I can also give you a patch for the getting started website page with updates based on my experience.

Thanks you very much for your tests & feedbacks.

Christophe
No problems at all - happy to help however I can. I'll try the JetSpeed deployment tomorrow.

Cheers,

Martin

Reply via email to