summaryrefslogtreecommitdiff
path: root/sql/rpl_filter.cc
diff options
context:
space:
mode:
authorAlexander Ivanov <alexi1952@yandex.ru>2009-10-16 17:28:13 +0400
committerAlexander Ivanov <alexi1952@yandex.ru>2009-10-16 17:28:13 +0400
commitc12c675d36c4180ea288907953cceeef4b6875fa (patch)
tree26292850b0fefd0869fe946e9843ae5843dcedfb /sql/rpl_filter.cc
parentef5874d154849a21fd5bd42124df31f4d35b558d (diff)
downloadmariadb-git-c12c675d36c4180ea288907953cceeef4b6875fa.tar.gz
MWL#36: Add a mysqlbinlog option to change the used database.
Add Rpl_filter to mysqlbinlog.cc Note. Though within MWL#36 we are going to use only two Rpl_filter's methods (add_db_rewrite and get_rewrite_db), we look forward for MWL#40 where Rpl_filter is likely to be used to its more extent. Note. Within MWL#36 we will not use Rpl_filter for supporting --database option: this option allows to specify only one database what doesn't correlate with Rpl_filter::add_do_db() (using this method will either appear "artificial" or require changing --database semantics). To be discussed within MWL#40. To add Rpl_filter we need: 1. include sql_string.h There are two instances of sql_string.* files - in sql and in client directories. We need to use the ones from the sql dir. 2. include sql_list.h This requires to define a client version of sql_alloc() function. 3. include rpl_filter.h This requires a definition of system_charset_info variable. Besides, Rpl_filter::tables_ok() refers to a TABLE_LIST structure which encounts deep non-client dependencies and can't be used here as is. On the other hand, tables_ok() make use only few TABLE_LIST's members and none of them depends on specific server context. This allows to redefine TABLE_LIST in a client context so that tables_ok() becomes admissible (surely it's a kind of hack but (at least currently) it's better than #ifndef'ing this method in Rpl_filter definition). Also add Rpl_filter::rewrite_db_is_empty() method. This is needed to be able to check that --rewrite-db is not used jointly with --base64-output= always (this is not supported - at least currently).
Diffstat (limited to 'sql/rpl_filter.cc')
-rw-r--r--sql/rpl_filter.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/sql/rpl_filter.cc b/sql/rpl_filter.cc
index 68272c58bb1..95a45d3f551 100644
--- a/sql/rpl_filter.cc
+++ b/sql/rpl_filter.cc
@@ -514,6 +514,13 @@ Rpl_filter::get_wild_ignore_table(String* str)
}
+bool
+Rpl_filter::rewrite_db_is_empty()
+{
+ return rewrite_db.is_empty();
+}
+
+
const char*
Rpl_filter::get_rewrite_db(const char* db, size_t *new_len)
{