Not that I want to start (continue) an argument on this list but....
I know about ODBC, I've written an ODBC driver but in a purely commercial
arena. Until recently, I've never used MySQL (other than under bugzilla)
or MyODBC in a development scenario. Since Xmas, I've been using
MySQL 5, MyODBC, DBD::ODBC with MyODBC and DBD::mysql
in a project where we needed a database for prototyping. I'm using it
for "free", i.e. I've not spent any money on purchasing it.
In the 2-3 months I've been using it I've found 5-10 bugs in the perl
driver and MyODBC and some have been awkward and time
consuming to diagnose. However, I got all the MySQL software
and drivers for "free" so I've invested time in locating the issues
and attempting to fix them, and where possible posted patches
for the fixes.
I know not everyone is capable of locating bugs, fixing them and posting
patches but I feel it still needs mentioning that OS software
progresses best where people contribute. If you can't fix a problem
you can still do a lot to help diagnose the issue - providing detailed
and exact ways of reproducing the problem, providing logs etc - as with
other mailing lists for OS software sometimes this has not happened.
It would seem MySQL are in the middle - the software is available
in source form but you can purchase support. Obviously some people
on this list have purchased support and have problems and in that
respect I can understand their frustration.
Personally, I'm Ok. I have the ability to locate the problems
and fix them and I'm not complaining about the software because
I didn't pay anything for it. However, I would say I've got around
4/5 fixes in particular for DBD::mysql and a few for MyODBC
which have been posted in this list and the dbi-users list but I've
still not seen them included in any distribution or even pre-release.
It makes little difference to me but I suspect others could benefit
from some of the fixes.
I have a lot of respect for Peter who started unixODBC and wrote much of
the original code and is looking after MyODBC these days. Help
him and MySQL to be better by providing good reproducible problems
with logs. To MySQL, I'd say, try a little harder to take bugs and
under your wing and turn around pre-releases a little faster - in fairness
this is more directed at DBD::mysql (for my part) than MyODBC.
As an aside (but an example), a recent issue I found was in MyODBC
and I'd imagine it would be trivial to change (should it be deemed the
right thing to do). Options = 2 (I think, off the top of my head) causes
MyODBC to return the true affected rows (like other DBs do e.g. the
rows in the select list of an update) rather than the rows actually changed.
I hit problems doing "update table set column = ? where column = 'xxx'
the affected rows when ? = 'xxx' is 0. In my opion the default should
be the other way around (which I believe is the way other DBs work).