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.