First, the implementor should know how many bytes are required to store savepoint information. This should be a fixed size, preferably not large as the MySQL server will allocate space to store the savepoint for all storage engines with each named savepoint.
The implementor should store the data in the space preallocated by mysqld - and use the contents from the preallocated space for rollback or release savepoint operations.
operation occurs (with
bool all set to
true), all savepoints are assumed to be
released. If the storage engine allocates resources for
savepoints, it should free them.
The following handlerton elements need to be implemented to support savepoints (elements 7,9,10,11):
uint savepoint_offset; int (*savepoint_set)(THD *thd, void *sv); int (*savepoint_rollback)(THD *thd, void *sv); int (*savepoint_release)(THD *thd, void *sv);