diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-03-08 13:13:46 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-03-08 13:13:46 +0100 |
commit | 086b54c281eaf5470b0424d926492d7ee25e4916 (patch) | |
tree | b8579c45db9b3085b9204bd00490466d5bea6845 /log/log0recv.c | |
parent | a9f12c27c3b260f79ff0d28df8d2006ebea84b3a (diff) | |
download | mariadb-git-086b54c281eaf5470b0424d926492d7ee25e4916.tar.gz |
Percona-Server-5.5.30-rel30.1.tar.gz
Diffstat (limited to 'log/log0recv.c')
-rw-r--r-- | log/log0recv.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/log/log0recv.c b/log/log0recv.c index d07a9d45c06..b1d1d4c3273 100644 --- a/log/log0recv.c +++ b/log/log0recv.c @@ -987,8 +987,11 @@ recv_parse_or_apply_log_rec_body( not NULL, then the log record is applied to the page, and the log record should be complete then */ - mtr_t* mtr) /*!< in: mtr or NULL; should be non-NULL + mtr_t* mtr, /*!< in: mtr or NULL; should be non-NULL if and only if block is non-NULL */ + ulint space_id) + /*!< in: tablespace id obtained by + parsing initial log record */ { dict_index_t* index = NULL; page_t* page; @@ -1260,8 +1263,11 @@ recv_parse_or_apply_log_rec_body( ut_ad(!page || page_type != FIL_PAGE_TYPE_ALLOCATED); ptr = mlog_parse_string(ptr, end_ptr, page, page_zip); break; - case MLOG_FILE_CREATE: case MLOG_FILE_RENAME: + ptr = fil_op_log_parse_or_replay(ptr, end_ptr, type, + space_id, 0); + break; + case MLOG_FILE_CREATE: case MLOG_FILE_DELETE: case MLOG_FILE_CREATE2: ptr = fil_op_log_parse_or_replay(ptr, end_ptr, type, 0, 0); @@ -1665,7 +1671,8 @@ recv_recover_page_func( recv_parse_or_apply_log_rec_body(recv->type, buf, buf + recv->len, - block, &mtr); + block, &mtr, + recv_addr->space); if (srv_recovery_stats) { mutex_enter(&(recv_sys->mutex)); @@ -2150,7 +2157,7 @@ recv_parse_log_rec( #endif /* UNIV_LOG_LSN_DEBUG */ new_ptr = recv_parse_or_apply_log_rec_body(*type, new_ptr, end_ptr, - NULL, NULL); + NULL, NULL, *space); if (UNIV_UNLIKELY(new_ptr == NULL)) { return(0); |