maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #06666
Re: MariaDB plugin interface and embedded library compatibility
Hi, Honza!
On Jan 21, Honza Horak wrote:
> Hi guys,
>
> I'm not able to find any information about compatibility assurance of
> server side -- i.e plugin interface and libmysqld.so library. I expect
> both should have stable API at least for one minor version across bugfix
> releases, but I don't believe that libmysqld.so is able to preserve ABI
> compatibility, since the set of exported symbols there is really huge.
>
> Can you, please, provide some simple statement (ideally as an article)
> what is your best afford and if we can expect API/ABI of
> plugin/libmysqld.so interfaces?
libmysqld.so API is stable as long as one uses only the documented
client-server API. One can link with libmysqlclient or libmysqld, but
the API doesn't change. If one invokes internal libmysqld.so functions
directly - there are no promises about that, they can change even in a
minor version.
Plugin interfaces do not change as long as the plugin API version
doesn't change. All plugin-related interfaces are versioned internally
and the server compares plugin API versions before running a plugin.
Currently in MariaDB 5.5 there are 17 versions protecting various parts
of the plugin API.
There are no promises when a particular version will or will not change,
but practically, API versions for storage engines, information_schema
tables and daemon plugins change with every bugfix release. While other
14 versions change very rarely, less than once per major release.
Regards,
Sergei
References