← Back to team overview

maria-developers team mailing list archive

Re: libmariadb.so.3 compatibility

 

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@xxxxxxxxxxxxxx> 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@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~maria-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>

References