1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

cleanup: extract transaction-related part of handlerton

into a separate transaction_participant structure

handlerton inherits it, so handlerton itself doesn't change.
but entities that only need to participate in a transaction,
like binlog or online alter log, use a transaction_participant
and no longer need to pretend to be a full-blown but invisible
storage engine which doesn't support create table.
This commit is contained in:
Sergei Golubchik
2024-09-11 19:32:38 +02:00
parent 126d6d787c
commit aed5928207
32 changed files with 670 additions and 724 deletions

View File

@@ -645,7 +645,7 @@ struct st_mysql_storage_engine
int interface_version;
};
struct handlerton;
struct transaction_participant;
/*
@@ -748,7 +748,7 @@ void mysql_query_cache_invalidate4(MYSQL_THD thd,
/**
Provide a handler data getter to simplify coding
*/
void *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
void *thd_get_ha_data(const MYSQL_THD thd, const struct transaction_participant *hton);
/**
@@ -769,10 +769,10 @@ void *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
thd_set_ha_data() in this connection before, storage engine
plugin lock gets released.
If handlerton::close_connection() didn't reset ha_data, server does
it immediately after calling handlerton::close_connection().
If transaction_participant::close_connection() didn't reset ha_data, server
does it immediately after calling transaction_participant::close_connection()
*/
void thd_set_ha_data(MYSQL_THD thd, const struct handlerton *hton,
void thd_set_ha_data(MYSQL_THD thd, const struct transaction_participant *hton,
const void *ha_data);