| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "sql/recovery.h" | 5 #include "sql/recovery.h" |
| 6 | 6 |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/format_macros.h" | 8 #include "base/format_macros.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 r->Shutdown(POISON); | 134 r->Shutdown(POISON); |
| 135 } | 135 } |
| 136 | 136 |
| 137 Recovery::Recovery(Connection* connection) | 137 Recovery::Recovery(Connection* connection) |
| 138 : db_(connection), | 138 : db_(connection), |
| 139 recover_db_() { | 139 recover_db_() { |
| 140 // Result should keep the page size specified earlier. | 140 // Result should keep the page size specified earlier. |
| 141 if (db_->page_size_) | 141 if (db_->page_size_) |
| 142 recover_db_.set_page_size(db_->page_size_); | 142 recover_db_.set_page_size(db_->page_size_); |
| 143 | 143 |
| 144 // Files with I/O errors cannot be safely memory-mapped. |
| 145 recover_db_.set_mmap_disabled(); |
| 146 |
| 144 // TODO(shess): This may not handle cases where the default page | 147 // TODO(shess): This may not handle cases where the default page |
| 145 // size is used, but the default has changed. I do not think this | 148 // size is used, but the default has changed. I do not think this |
| 146 // has ever happened. This could be handled by using "PRAGMA | 149 // has ever happened. This could be handled by using "PRAGMA |
| 147 // page_size", at the cost of potential additional failure cases. | 150 // page_size", at the cost of potential additional failure cases. |
| 148 } | 151 } |
| 149 | 152 |
| 150 Recovery::~Recovery() { | 153 Recovery::~Recovery() { |
| 151 Shutdown(RAZE_AND_POISON); | 154 Shutdown(RAZE_AND_POISON); |
| 152 } | 155 } |
| 153 | 156 |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 522 } | 525 } |
| 523 return false; | 526 return false; |
| 524 } | 527 } |
| 525 | 528 |
| 526 RecordRecoveryEvent(RECOVERY_SUCCESS_META_VERSION); | 529 RecordRecoveryEvent(RECOVERY_SUCCESS_META_VERSION); |
| 527 *version = recovery_version.ColumnInt(0); | 530 *version = recovery_version.ColumnInt(0); |
| 528 return true; | 531 return true; |
| 529 } | 532 } |
| 530 | 533 |
| 531 } // namespace sql | 534 } // namespace sql |
| OLD | NEW |