7 messages in com.mysql.lists.packagersRe: 5.0.19 libmysqlclient not ABI-com...| From | Sent On | Attachments |
|---|---|---|
| Tom Lane | 17 Mar 2006 13:41 | |
| Christian Hammers | 18 Mar 2006 03:50 | |
| Tom Lane | 18 Mar 2006 07:08 | |
| Christian Hammers | 20 Mar 2006 00:35 | |
| Tom Lane | 20 Mar 2006 13:35 | |
| Colin Charles | 20 Mar 2006 23:35 | |
| Lenz Grimmer | 22 Mar 2006 12:11 |
| Subject: | Re: 5.0.19 libmysqlclient not ABI-compatible with 5.0.18 ![]() |
|---|---|
| From: | Lenz Grimmer (le...@mysql.com) |
| Date: | 03/22/2006 12:11:40 PM |
| List: | com.mysql.lists.packagers |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Tom,
thanks for raising this issue!
On Mon, 20 Mar 2006, Tom Lane wrote:
5.0.19 has added a field to the MYSQL struct that was not there before. For clients that use a MYSQL struct they have allocated themselves (rather than allowing mysql_init to allocate it), this breaks binary compatibility, because they won't have made the struct large enough.
$ diff -c mysql-5.0.18/include/mysql.h mysql-5.0.19/include/mysql.h ... *************** *** 287,292 **** --- 287,294 ---- from mysql_stmt_close if close had to cancel result set of this object. */ my_bool *unbuffered_fetch_owner; + /* needed for embedded server - no net buffer to store the 'info' */ + char *info_buffer; } MYSQL;
typedef struct st_mysql_res { ***************
I don't know why the MYSQL struct wasn't made abstract in the first place, but given that mysql has chosen to expose it to client apps, they can't change it (not this much anyway) without creating an ABI break.
Ouch, this should not have happened.
For distributions like Debian it's a big deal when binary compatibility breaks without anybody being aware :)
No kidding. Red Hat has backed off our intention to ship 5.0.19 at all. What I want to know is, should I file a bug report or is this change intentional? (And if the latter, why wasn't there a .so version bump?)
I have filed a bug report about this now:
http://bugs.mysql.com/bug.php?id=18435
Please add additional input to the bug report, if required.
This was definitely not intentional. I've flagged this as a showstopper bug which must be addressed before 5.0.20 goes out. My proposal would be to revert that incompatibility instead of bumping up the .so version number, but it's up to our devs to make that decision...
Bye,
LenZ
- --
Lenz Grimmer <le...@mysql.com>
Community Relations Manager, EMEA
MySQL GmbH, http://www.mysql.de/, Hamburg, Germany
MySQL Users Conference 2006 (Santa Clara CA, 24-27 April) -
http://www.mysqluc.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: For info see http://quantumlab.net/pine_privacy_guard/
iD8DBQFEIa+VSVDhKrJykfIRAhVTAJ0TOa5fLHCnsnU5tWYF5oGF0RnO7gCbBJj+ e2KGSjCmE4ltzkIwi2D+edI= =vLBV -----END PGP SIGNATURE-----




