This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-15. For the latest, interactive version please visit https://mariadb.com/kb/.

Storage engine plugin that "proxies" another engine?

I would like to write a plugin that adds transparent versioning support for table rows.

The idea is one would create a table and specify something like "Engine=Versioned", which would create two regular tables in InnoDB/MyISAM. One table to hold the current data, and one to hold a couple of previous versions.

Then, when running UPDATE/DELETE statements, the "versioned" engine would first copy the current data to the "history" table and then forward the statement to the underlying storage engine.

Is this possible to do in a nice way using the plugin architecture?

Thanks

Thomas

Answer

Possible.

See Revision Engine as a living proof to that.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.