diff options
author | unknown <heikki@hundin.mysql.fi> | 2004-01-02 16:21:58 +0200 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2004-01-02 16:21:58 +0200 |
commit | 63f15064a48e4a3fbd5a15bda39d70ee5254a6ac (patch) | |
tree | d81fa2a06ae480165a5e48947544c371a0412168 /innobase | |
parent | 3940368293134f3fcce418c8533143ab6f4581ec (diff) | |
download | mariadb-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.h | 2 | ||||
-rw-r--r-- | innobase/log/log0recv.c | 24 |
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 |