WL#5817: Create interface for replication filters
Affects: Server-5.5
—
Status: Un-Assigned
This is a step towards making replication a library, such that the 5.6 rpl-
lib can be plugged into the 5.5 core [WL#5675].
Replication filters need to be defined in rpl-lib and accessed from core. The
purpose of this worklog is to define a minimal interface for this.
TODO: design this
- We use replication filters in the core functions change_password(),
mysql_table_grant(), mysql_routine_grant(), mysql_grant(), and
open_grant_tables() in sql_acl.cc; in all_tables_not_ok(), db_stmt_db_ok()
in sql_parse.cc.
- Replication filters should be part of rpl-lib. In which part of rpl-lib
should replication filters be defined?
Preliminary decision: The core needs to check both binary log filters and
slave filters. We should define two identical sets of functions, one that is
part of the Binlog class and one that is part of the Slave class.
- How much of the filters should be handled by the module: should rpl-lib
expose an interface to add and remove filters, or should filters be entirely
managed by rpl-lib?
Preliminary decision: It may be a useful feature in the future to expose
general-purpose filters as a separate class. However, it is not currently
needed in order to make 5.6 rpl-lib link to 5.5 core. So we will not expose
such interfaces now.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.