Bug #120427 Add a stable, versioned extension API and ABI to MySQL
Submitted: 8 May 17:22
Reporter: Adam Levin Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: User-defined functions ( UDF ) Severity:S4 (Feature request)
Version: OS:Any
Assigned to: CPU Architecture:Any
Tags: extensions

[8 May 17:22] Adam Levin
Description:
MySQL's existing extensibility mechanisms — UDFs, plugins, and components — require internal server headers with no documented stability guarantee and provide no version negotiation between the server and the extension. As a result, there is no practical way to ship a binary that loads reliably across server versions or MySQL-compatible distributions.

VillageSQL has built the VillageSQL Extension Framework (VEF) to address this and is proposing a shared extension API and ABI spec for community review.

How to repeat:
Build a plugin against MySQL 8.4.8 internal headers and attempt to load it on MySQL 8.4.9. There is no API version check and no documented ABI stability guarantee between patch releases. Repeat with the same binary on a different MySQL-compatible distribution — no portability guarantee exists even when the upstream version matches.

Suggested fix:
We are proposing a shared extension API and ABI spec — one that VEF already implements — and asking Oracle to provide an independent implementation, with INSTALL EXTENSION and UNINSTALL EXTENSION as the SQL interface. A detailed design proposal has been prepared for community review.
[8 May 17:23] Adam Levin
Design proposal

Attachment: mysql-community-design-proposal-draft.md (text/markdown), 11.22 KiB.