Hi Georg

> Hope this helps!
Yes, That's exactly the answer I was looking for. Thanks!

I'll add those mysql symlinks to the libmariadb.so and propose a change in Fedora. (Which should not rise any problem, because of the API & ABI compatibility)

While we talk about it, currently, you provide 2 binaries:
mysql_config
mariadb_config

I guess, you plan to remove mysql_config some versions later?
Are there any notable (compatibility) differences between them?

--

Michal Schorm
Associate Software Engineer
Core Services - Databases Team
Red Hat

On Thu, Jun 8, 2017 at 9:12 AM, G R <holzboote@googlemail.com> wrote:
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