The recent release of the MariaDB client libraries
has prompted questions about their purpose as well as
provenance. Colin Charles posted that some of these would be answered in the very near
future. I have a couple of specific questions about the
MariaDB JDBC driver, which I hope will be addressed at that time.
1.) What is really in the MariaDB JDBC driver and how
exactly does it differ from the drizzle JDBC
driver? What, if any, relation is there to Connector/J
code? There is a JIRA
project but it contains only four bugs, hence is not
very informative. The launchpad bzr history shows detailed check-ins
but not overall intent.
2.) Why relicense from BSD to LGPL? I have
checked the class headers and so far as attributions are
concerned everything seems to be done quite properly.
However, the license change appears to prevent those of us
currently using the drizzle JDBC driver from transferring code
changes back to the drizzle driver. If so, that seems a
little unneighborly.
Here is some background on the relationship between the drivers.
The MariaDB JDBC client is a fork of
the BSD-licensed drizzle JDBC driver originally
developed by Marcus Eriksson, who continues to maintain the
code. According to the bzr change history the code forked
after rev 253, which was 24 April 2011. There
are still many similarities in the Java classes. For
instance, a number of classes in
the org.mariadb.jdbc.internal.common package differ by
little other than licensing headers and package names. The
MariaDB code is now up to rev 375 and includes substantial
changes that appear to be designed to bring the MariaDB JDBC
driver closer to the capabilities of the MySQL Connector/J driver.
At Continuent we have a lively interest in the
drizzle JDBC driver, as we adopted it for Tungsten Replicator some time ago. The
code had fewer bugs than Connector/J, which was attractive.
More importantly, Marcus kindly accepted a patch from my
colleague Stephane Giron (working as a Continuent employee) that
made it easy for us to send queries using binary data rather than
the usual Unicode data required by the JDBC standard. This
fix allows Tungsten to replicate codesets and binary data
correctly. We have since contributed a few other patches.
Our modest contribution in part reflects the quality of the
base code.
While waiting for answers I would like to commend Marcus as well
as other drizzle contributors for their work. We are
particularly indebted to Marcus for starting and continuing the
drizzle JDBC project. Tungsten Replicator users have
applied many trillions of transactions using the drizzle
driver. If the MariaDB JDBC driver gains wide acceptance,
the rest of the MySQL community owes Marcus Eriksson substantial
thanks as well.
Jan
01
2013