summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2004-01-02 16:21:58 +0200
committerunknown <heikki@hundin.mysql.fi>2004-01-02 16:21:58 +0200
commit63f15064a48e4a3fbd5a15bda39d70ee5254a6ac (patch)
treed81fa2a06ae480165a5e48947544c371a0412168 /innobase
parent3940368293134f3fcce418c8533143ab6f4581ec (diff)
downloadmariadb-git-63f15064a48e4a3fbd5a15bda39d70ee5254a6ac.tar.gz
log0recv.h, log0recv.c:
Merge a log replay change required by ibbackup innobase/log/log0recv.c: Merge a log replay change required by ibbackup innobase/include/log0recv.h: Merge a log replay change required by ibbackup
Diffstat (limited to 'innobase')
-rw-r--r--innobase/include/log0recv.h2
-rw-r--r--innobase/log/log0recv.c24
2 files changed, 18 insertions, 8 deletions
diff --git a/innobase/include/log0recv.h b/innobase/include/log0recv.h
index 5991960e8ae..c972c3ce977 100644
--- a/innobase/include/log0recv.h
+++ b/innobase/include/log0recv.h
@@ -15,6 +15,8 @@ Created 9/20/1997 Heikki Tuuri
#include "hash0hash.h"
#include "log0log.h"
+extern ibool recv_replay_file_ops;
+
/***********************************************************************
Reads the checkpoint info needed in hot backup. */
diff --git a/innobase/log/log0recv.c b/innobase/log/log0recv.c
index b01474753bd..01679a374b0 100644
--- a/innobase/log/log0recv.c
+++ b/innobase/log/log0recv.c
@@ -34,6 +34,11 @@ Created 9/20/1997 Heikki Tuuri
#include "dict0boot.h"
#include "fil0fil.h"
+/* This is set to FALSE if the backup was originally taken with the
+ibbackup --include regexp option: then we do not want to create tables in
+directories which were not included */
+ibool recv_replay_file_ops = TRUE;
+
/* Log records are stored in the hash table in chunks at most of this size;
this must be less than UNIV_PAGE_SIZE as it is stored in the buffer pool */
#define RECV_DATA_BLOCK_SIZE (MEM_MAX_ALLOC_IN_BUF - sizeof(recv_data_t))
@@ -1974,18 +1979,21 @@ loop:
|| type == MLOG_FILE_RENAME
|| type == MLOG_FILE_DELETE)) {
#ifdef UNIV_HOTBACKUP
- /* In ibbackup --apply-log, replay an .ibd file
- operation, if possible; note that
- fil_path_to_mysql_datadir is set in ibbackup to
- point to the datadir we should use there */
+ if (recv_replay_file_ops) {
+
+ /* In ibbackup --apply-log, replay an .ibd file
+ operation, if possible; note that
+ fil_path_to_mysql_datadir is set in ibbackup to
+ point to the datadir we should use there */
- if (NULL == fil_op_log_parse_or_replay(body, end_ptr,
- type, TRUE, space)) {
- fprintf(stderr,
+ if (NULL == fil_op_log_parse_or_replay(body,
+ end_ptr, type, TRUE, space)) {
+ fprintf(stderr,
"InnoDB: Error: file op log record of type %lu space %lu not complete in\n"
"InnoDB: the replay phase. Path %s\n", (ulint)type, space, (char*)(body + 2));
- ut_a(0);
+ ut_a(0);
+ }
}
#endif
/* In normal mysqld crash recovery we do not try to