summaryrefslogtreecommitdiffstats
path: root/storage/innobase/include/log0recv.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/include/log0recv.h')
-rw-r--r--storage/innobase/include/log0recv.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/storage/innobase/include/log0recv.h b/storage/innobase/include/log0recv.h
index 6d75e15a..a73b7279 100644
--- a/storage/innobase/include/log0recv.h
+++ b/storage/innobase/include/log0recv.h
@@ -44,6 +44,11 @@ ATTRIBUTE_COLD MY_ATTRIBUTE((nonnull, warn_unused_result))
@return whether the page was recovered correctly */
bool recv_recover_page(fil_space_t* space, buf_page_t* bpage);
+/** Read the latest checkpoint information from log file
+and store it in log_sys.next_checkpoint and recv_sys.file_checkpoint
+@return error code or DB_SUCCESS */
+dberr_t recv_recovery_read_checkpoint();
+
/** Start recovering from a redo log checkpoint.
of first system tablespace page
@return error code or DB_SUCCESS */
@@ -114,7 +119,19 @@ struct recv_dblwr_t
@param name tablespace filepath
@param file tablespace file handle
@return whether the operation failed */
- bool restore_first_page(uint32_t space_id, const char *name, os_file_t file);
+ bool restore_first_page(uint32_t space_id, const char *name,
+ pfs_os_file_t file);
+
+ /** Restore the first page of the given tablespace from
+ doublewrite buffer.
+ 1) Find the page which has page_no as 0
+ 2) Read first 3 pages from tablespace file
+ 3) Compare the space_ids from the pages with page0 which
+ was retrieved from doublewrite buffer
+ @param name tablespace filepath
+ @param file tablespace file handle
+ @return space_id or 0 in case of error */
+ uint32_t find_first_page(const char *name, pfs_os_file_t file);
typedef std::deque<byte*, ut_allocator<byte*> > list;