summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--sql/ha_innodb.cc33
2 files changed, 34 insertions, 0 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index e419f9edfb9..32e46fb079f 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -78,6 +78,7 @@ jcole@sarvik.tfr.cafe.ee
jcole@tetra.spaceapes.com
joreland@mysql.com
jorge@linux.jorge.mysql.com
+jplindst@t41.(none)
kaj@work.mysql.com
konstantin@mysql.com
kostja@oak.local
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index 36202efcc02..619c05711c4 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -66,6 +66,7 @@ extern "C" {
#include "../innobase/include/trx0roll.h"
#include "../innobase/include/trx0trx.h"
#include "../innobase/include/trx0sys.h"
+#include "../innobase/include/mtr0mtr.h"
#include "../innobase/include/row0ins.h"
#include "../innobase/include/row0mysql.h"
#include "../innobase/include/row0sel.h"
@@ -5182,4 +5183,36 @@ ha_innobase::get_auto_increment()
return(nr);
}
+/***********************************************************************
+This function stores binlog offset and flushes logs */
+
+void
+innobase_store_binlog_offset_and_flush_log(
+/*=============================*/
+ char *binlog_name, /* in: binlog name */
+ longlong offset /* in: binlog offset */
+)
+{
+ mtr_t mtr;
+
+ assert(binlog_name != NULL);
+
+ /* Start a mini-transaction */
+ mtr_start_noninline(&mtr);
+
+ /* Update the latest MySQL binlog name and offset info
+ in trx sys header */
+
+ trx_sys_update_mysql_binlog_offset(
+ binlog_name,
+ offset,
+ TRX_SYS_MYSQL_LOG_INFO, &mtr);
+
+ /* Commits the mini-transaction */
+ mtr_commit(&mtr);
+
+ /* Syncronous flush of the log buffer to disk */
+ log_buffer_flush_to_disk();
+}
+
#endif /* HAVE_INNOBASE_DB */