Chromium Code Reviews| Index: chrome/browser/history/shortcuts_database.cc |
| diff --git a/chrome/browser/history/shortcuts_database.cc b/chrome/browser/history/shortcuts_database.cc |
| index 51d6f09293fbffe58da621bfab05911739d5a9d8..1f7d8ef6973e8fc4b56e178630e23ba7dfb14934 100644 |
| --- a/chrome/browser/history/shortcuts_database.cc |
| +++ b/chrome/browser/history/shortcuts_database.cc |
| @@ -11,11 +11,18 @@ |
| #include "base/logging.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/time/time.h" |
| +#include "sql/meta_table.h" |
| #include "sql/statement.h" |
| #include "sql/transaction.h" |
| namespace { |
| +// Current version number. We write databases at the "current" version number, |
| +// but any previous version that can read the "compatible" one can make do with |
| +// or database without *too* many bad effects. |
|
Peter Kasting
2014/02/12 00:27:50
Nit: or -> our
Anuj
2014/02/12 23:54:40
Done.
|
| +const int kCurrentVersionNumber = 1; |
| +const int kCompatibleVersionNumber = 1; |
| + |
| void BindShortcutToStatement( |
| const history::ShortcutsBackend::Shortcut& shortcut, |
| sql::Statement* s) { |
| @@ -196,6 +203,25 @@ bool ShortcutsDatabase::EnsureTable() { |
| transaction.Commit(); |
| } |
| + if (!sql::MetaTable::DoesTableExist(&db_)) { |
| + meta_table_.Init(&db_, kCurrentVersionNumber, kCompatibleVersionNumber); |
| + sql::Transaction transaction(&db_); |
| + transaction.Begin(); |
|
Peter Kasting
2014/02/12 00:27:50
Nit: Include this call in the return statement
Yo
Anuj
2014/02/12 23:54:40
Done.
|
| + return |
| + // Migrate old SEARCH_OTHER_ENGINE values to the new type value. |
| + db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts " |
| + "SET type = 13 WHERE type = 9").c_str()) && |
| + // Migrate old EXTENSION_APP values to the new type value. |
| + db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts " |
| + "SET type = 14 WHERE type = 10").c_str()) && |
| + // Migrate old CONTACT values to the new type value. |
| + db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts " |
| + "SET type = 15 WHERE type = 11").c_str()) && |
| + // Migrate old BOOKMARK_TITLE values to the new type value. |
| + db_.Execute(base::StringPrintf("UPDATE omni_box_shortcuts " |
| + "SET type = 16 WHERE type = 12").c_str()) && |
| + transaction.Commit(); |
| + } |
| return true; |
| } |