Hi Michal, libmariadb.so.2 is MariaDB Connector/C 2.x, while libmariadb.so.3 refers to MariaDB Connector/C 3.0 (GA will be released together with next MariaDB 10.2 release in July =10.2.7). Both versions are backwards compatible with libmysql.so.18 - API and ABI wise, unless applications will abuse internals of MYSQL or MYSQL_STMT structures instead of using API functions (like mysql->reconnect=1 instead of using mysql_options(mysql, MYSQL_OPT_RECONNECT, &value). Connector/C versions < 2.2.2 are not 100% ABI compatible, since the plugin interface differs (MySQL changed the interface without bumping the interface number years ago). Compared to libmysql.so.18 libmariadb.so.3 offers additional functions and features: Functions: - mariadb_cancel - mariadb_connection - mariadb_get_charset_by_name - mariadb_stmt_execute_direct - mariadb_get_charset_by_nr - mariadb_get_info - mariadb_get_infov - mysql_optionsv Functionality: - prepare and execute in one step (mariadb_stmt_execute_direct) - bulk insert for prepared statements (will be supported in 10.2.7) - TLS/SSL: - finger print verification of host certificate - GnuTLS, Schannel (Windows), OpenSSL or LibreSSL support - Connection plugins (e.g. for replication/failover, tracing, tunelling etc.). - Kerberos authentication plugin Hope this helps! /Georg On Wed, Jun 7, 2017 at 4:50 PM, Michal Schorm <mschorm@redhat.com> wrote:
Hello,
I'm currently quite confused about the *libmariadb* library.
In MariaDB 10.1.24 there are: " libmysqlclient_r.so -> libmysqlclient.so " " libmysqlclient.so -> libmysqlclient.so.18 " " libmysqlclient.so.18 -> libmysqlclient.so.18.0.0 " " libmysqlclient.so.18.0.0 "
In MariaDB 10.2.6 there are: " libmariadb.so -> libmariadb.so.3 "
In MariaDB-connector-c v2.3.3 there are: " libmysqlclient.so -> libmariadb.so " " libmysqlclient_r.so -> libmariadb.so " " libmariadb.so -> libmariadb.so.2 " " libmariadb.so.2 "
--
1) is "libmariadb.so.2" compatibile with "libmysqlclient.so.18.0.0"? Both API and ABI? 2) is "libmariadb.so.3" compatibile with "libmysqlclient.so.18.0.0"? Both API and ABI? 3) is "libmariadb.so.2" compatibile with "libmariadb.so.3"? Both API and ABI?
Many packages in Fedora depends on "libmysqlclient.so". I would like to pack 10.2 to Fedora, but I can't before all those packages move to the libmariadb library. It would be considerably easier transfer for me, if all those libraries were compatibile, so I could provide symlinks (simmilar as in the connector C), and provide time for all those packages in Fedora to move safely.
--
Michal Schorm Associate Software Engineer Core Services - Databases Team Red Hat
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp