| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "components/history/core/browser/history_database.h" | 5 #include "components/history/core/browser/history_database.h" | 
| 6 | 6 | 
| 7 #include <stdint.h> | 7 #include <stdint.h> | 
| 8 | 8 | 
| 9 #include <algorithm> | 9 #include <algorithm> | 
| 10 #include <set> | 10 #include <set> | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 49     : DownloadDatabase(download_interrupt_reason_none, | 49     : DownloadDatabase(download_interrupt_reason_none, | 
| 50                        download_interrupt_reason_crash) { | 50                        download_interrupt_reason_crash) { | 
| 51 } | 51 } | 
| 52 | 52 | 
| 53 HistoryDatabase::~HistoryDatabase() { | 53 HistoryDatabase::~HistoryDatabase() { | 
| 54 } | 54 } | 
| 55 | 55 | 
| 56 sql::InitStatus HistoryDatabase::Init(const base::FilePath& history_name) { | 56 sql::InitStatus HistoryDatabase::Init(const base::FilePath& history_name) { | 
| 57   db_.set_histogram_tag("History"); | 57   db_.set_histogram_tag("History"); | 
| 58 | 58 | 
| 59   // Set the exceptional sqlite error handler. |  | 
| 60   db_.set_error_callback(error_callback_); |  | 
| 61 |  | 
| 62   // Set the database page size to something a little larger to give us | 59   // Set the database page size to something a little larger to give us | 
| 63   // better performance (we're typically seek rather than bandwidth limited). | 60   // better performance (we're typically seek rather than bandwidth limited). | 
| 64   // This only has an effect before any tables have been created, otherwise | 61   // This only has an effect before any tables have been created, otherwise | 
| 65   // this is a NOP. Must be a power of 2 and a max of 8192. | 62   // this is a NOP. Must be a power of 2 and a max of 8192. | 
| 66   db_.set_page_size(4096); | 63   db_.set_page_size(4096); | 
| 67 | 64 | 
| 68   // Set the cache size. The page size, plus a little extra, times this | 65   // Set the cache size. The page size, plus a little extra, times this | 
| 69   // value, tells us how much memory the cache will use maximum. | 66   // value, tells us how much memory the cache will use maximum. | 
| 70   // 1000 * 4kB = 4MB | 67   // 1000 * 4kB = 4MB | 
| 71   // TODO(brettw) scale this value to the amount of available memory. | 68   // TODO(brettw) scale this value to the amount of available memory. | 
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 252 | 249 | 
| 253 void HistoryDatabase::BeginTransaction() { | 250 void HistoryDatabase::BeginTransaction() { | 
| 254   db_.BeginTransaction(); | 251   db_.BeginTransaction(); | 
| 255 } | 252 } | 
| 256 | 253 | 
| 257 void HistoryDatabase::CommitTransaction() { | 254 void HistoryDatabase::CommitTransaction() { | 
| 258   db_.CommitTransaction(); | 255   db_.CommitTransaction(); | 
| 259 } | 256 } | 
| 260 | 257 | 
| 261 void HistoryDatabase::RollbackTransaction() { | 258 void HistoryDatabase::RollbackTransaction() { | 
| 262   db_.RollbackTransaction(); | 259   // If Init() returns with a failure status, the Transaction created there will | 
|  | 260   // be destructed and rolled back. HistoryBackend might try to kill the | 
|  | 261   // database after that, at which point it will try to roll back a non-existing | 
|  | 262   // transaction. This will crash on a DCHECK. So transaction_nesting() is | 
|  | 263   // checked first. | 
|  | 264   if (db_.transaction_nesting()) | 
|  | 265     db_.RollbackTransaction(); | 
| 263 } | 266 } | 
| 264 | 267 | 
| 265 bool HistoryDatabase::RecreateAllTablesButURL() { | 268 bool HistoryDatabase::RecreateAllTablesButURL() { | 
| 266   if (!DropVisitTable()) | 269   if (!DropVisitTable()) | 
| 267     return false; | 270     return false; | 
| 268   if (!InitVisitTable()) | 271   if (!InitVisitTable()) | 
| 269     return false; | 272     return false; | 
| 270 | 273 | 
| 271   if (!DropKeywordSearchTermsTable()) | 274   if (!DropKeywordSearchTermsTable()) | 
| 272     return false; | 275     return false; | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 289 } | 292 } | 
| 290 | 293 | 
| 291 void HistoryDatabase::TrimMemory(bool aggressively) { | 294 void HistoryDatabase::TrimMemory(bool aggressively) { | 
| 292   db_.TrimMemory(aggressively); | 295   db_.TrimMemory(aggressively); | 
| 293 } | 296 } | 
| 294 | 297 | 
| 295 bool HistoryDatabase::Raze() { | 298 bool HistoryDatabase::Raze() { | 
| 296   return db_.Raze(); | 299   return db_.Raze(); | 
| 297 } | 300 } | 
| 298 | 301 | 
|  | 302 std::string HistoryDatabase::GetDiagnosticInfo(int extended_error, | 
|  | 303                                                sql::Statement* statement) { | 
|  | 304   return db_.GetDiagnosticInfo(extended_error, statement); | 
|  | 305 } | 
|  | 306 | 
| 299 bool HistoryDatabase::SetSegmentID(VisitID visit_id, SegmentID segment_id) { | 307 bool HistoryDatabase::SetSegmentID(VisitID visit_id, SegmentID segment_id) { | 
| 300   sql::Statement s(db_.GetCachedStatement(SQL_FROM_HERE, | 308   sql::Statement s(db_.GetCachedStatement(SQL_FROM_HERE, | 
| 301       "UPDATE visits SET segment_id = ? WHERE id = ?")); | 309       "UPDATE visits SET segment_id = ? WHERE id = ?")); | 
| 302   s.BindInt64(0, segment_id); | 310   s.BindInt64(0, segment_id); | 
| 303   s.BindInt64(1, visit_id); | 311   s.BindInt64(1, visit_id); | 
| 304   DCHECK(db_.GetLastChangeCount() == 1); | 312   DCHECK(db_.GetLastChangeCount() == 1); | 
| 305 | 313 | 
| 306   return s.Run(); | 314   return s.Run(); | 
| 307 } | 315 } | 
| 308 | 316 | 
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 537       "SET visit_time = visit_time + 11644473600000000 " | 545       "SET visit_time = visit_time + 11644473600000000 " | 
| 538       "WHERE id IN (SELECT id FROM visits WHERE visit_time > 0);")); | 546       "WHERE id IN (SELECT id FROM visits WHERE visit_time > 0);")); | 
| 539   ignore_result(db_.Execute( | 547   ignore_result(db_.Execute( | 
| 540       "UPDATE segment_usage " | 548       "UPDATE segment_usage " | 
| 541       "SET time_slot = time_slot + 11644473600000000 " | 549       "SET time_slot = time_slot + 11644473600000000 " | 
| 542       "WHERE id IN (SELECT id FROM segment_usage WHERE time_slot > 0);")); | 550       "WHERE id IN (SELECT id FROM segment_usage WHERE time_slot > 0);")); | 
| 543 } | 551 } | 
| 544 #endif | 552 #endif | 
| 545 | 553 | 
| 546 }  // namespace history | 554 }  // namespace history | 
| OLD | NEW | 
|---|