summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2009-06-11 19:49:51 +0200
committerunknown <knielsen@knielsen-hq.org>2009-06-11 19:49:51 +0200
commit4b2aafb35cd2f04d96165100aee22b8836cf950d (patch)
treec11afa70602fb80e4e6e0854bd8d8bc4de7375bf /sql
parent1f81aa5f5aa48001b4b986c0d45ea094c78f896d (diff)
parent93bcda598bd6c58a7f5ad3d2e860b194325eed9f (diff)
downloadmariadb-git-4b2aafb35cd2f04d96165100aee22b8836cf950d.tar.gz
Merge of Percona XtraDB into MariaDB.
Diffstat (limited to 'sql')
-rw-r--r--sql/log_event.cc26
-rw-r--r--sql/log_event.h4
-rw-r--r--sql/rpl_mi.cc5
-rw-r--r--sql/rpl_rli.cc5
-rw-r--r--sql/slave.cc51
5 files changed, 30 insertions, 61 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 87917b6ac86..485dc2fddc3 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -9313,3 +9313,29 @@ st_print_event_info::st_print_event_info()
open_cached_file(&body_cache, NULL, NULL, 0, flags);
}
#endif
+
+#if defined(MYSQL_SERVER)
+/*
+ Access to the current replication position.
+
+ There is a dummy replacement for this in the embedded library that returns
+ FALSE; this is used by XtraDB to allow it to access replication stuff while
+ still being able to use the same plugin in both stand-alone and embedded.
+*/
+bool rpl_get_position_info(const char **log_file_name, ulonglong *log_pos,
+ const char **group_relay_log_name,
+ ulonglong *relay_log_pos)
+{
+#if defined(EMBEDDED_LIBRARY) || !defined(HAVE_REPLICATION)
+ return FALSE;
+#else
+ const Relay_log_info *rli= &(active_mi->rli);
+ *log_file_name= rli->group_master_log_name;
+ *log_pos= rli->group_master_log_pos +
+ (rli->future_event_relay_log_pos - rli->group_relay_log_pos);
+ *group_relay_log_name= rli->group_relay_log_name;
+ *relay_log_pos= rli->future_event_relay_log_pos;
+ return TRUE;
+#endif
+}
+#endif
diff --git a/sql/log_event.h b/sql/log_event.h
index bda53da8ab0..45dcf297697 100644
--- a/sql/log_event.h
+++ b/sql/log_event.h
@@ -3917,6 +3917,10 @@ static inline bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache,
reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE);
}
+bool rpl_get_position_info(const char **log_file_name, ulonglong *log_pos,
+ const char **group_relay_log_name,
+ ulonglong *relay_log_pos);
+
/**
@} (end of group Replication)
*/
diff --git a/sql/rpl_mi.cc b/sql/rpl_mi.cc
index cb8b0e02ef9..b8af53849f1 100644
--- a/sql/rpl_mi.cc
+++ b/sql/rpl_mi.cc
@@ -22,11 +22,6 @@
#ifdef HAVE_REPLICATION
-// Defined in slave.cc
-int init_intvar_from_file(int* var, IO_CACHE* f, int default_val);
-int init_strvar_from_file(char *var, int max_size, IO_CACHE *f,
- const char *default_val);
-
Master_info::Master_info()
:Slave_reporting_capability("I/O"),
ssl(0), ssl_verify_server_cert(0), fd(-1), io_thd(0), inited(0),
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 82628143bea..3fbe9b16d23 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -23,11 +23,6 @@
static int count_relay_log_space(Relay_log_info* rli);
-// Defined in slave.cc
-int init_intvar_from_file(int* var, IO_CACHE* f, int default_val);
-int init_strvar_from_file(char *var, int max_size, IO_CACHE *f,
- const char *default_val);
-
Relay_log_info::Relay_log_info()
:Slave_reporting_capability("SQL"),
diff --git a/sql/slave.cc b/sql/slave.cc
index ec86a4c48e0..b6138078e35 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -755,57 +755,6 @@ const char *print_slave_db_safe(const char* db)
DBUG_RETURN((db ? db : ""));
}
-int init_strvar_from_file(char *var, int max_size, IO_CACHE *f,
- const char *default_val)
-{
- uint length;
- DBUG_ENTER("init_strvar_from_file");
-
- if ((length=my_b_gets(f,var, max_size)))
- {
- char* last_p = var + length -1;
- if (*last_p == '\n')
- *last_p = 0; // if we stopped on newline, kill it
- else
- {
- /*
- If we truncated a line or stopped on last char, remove all chars
- up to and including newline.
- */
- int c;
- while (((c=my_b_get(f)) != '\n' && c != my_b_EOF))
- ;
- }
- DBUG_RETURN(0);
- }
- else if (default_val)
- {
- strmake(var, default_val, max_size-1);
- DBUG_RETURN(0);
- }
- DBUG_RETURN(1);
-}
-
-
-int init_intvar_from_file(int* var, IO_CACHE* f, int default_val)
-{
- char buf[32];
- DBUG_ENTER("init_intvar_from_file");
-
-
- if (my_b_gets(f, buf, sizeof(buf)))
- {
- *var = atoi(buf);
- DBUG_RETURN(0);
- }
- else if (default_val)
- {
- *var = default_val;
- DBUG_RETURN(0);
- }
- DBUG_RETURN(1);
-}
-
/*
Note that we rely on the master's version (3.23, 4.0.14 etc) instead of
relying on the binlog's version. This is not perfect: imagine an upgrade