Index: components/offline_pages/offline_page_metadata_store_sql.cc |
diff --git a/components/offline_pages/offline_page_metadata_store_sql.cc b/components/offline_pages/offline_page_metadata_store_sql.cc |
index 4fbd76519f5823d7e65fe7d19a132a6f3db15266..d85c97f407d372ae7ff7da9960d075226ad8a902 100644 |
--- a/components/offline_pages/offline_page_metadata_store_sql.cc |
+++ b/components/offline_pages/offline_page_metadata_store_sql.cc |
@@ -33,7 +33,6 @@ bool CreateOfflinePagesTable(sql::Connection* db) { |
" file_size INTEGER NOT NULL," |
" last_access_time INTEGER NOT NULL," |
" access_count INTEGER NOT NULL," |
- " expiration_time INTEGER NOT NULL DEFAULT 0," |
" client_namespace VARCHAR NOT NULL," |
" client_id VARCHAR NOT NULL," |
" online_url VARCHAR NOT NULL," |
@@ -76,12 +75,12 @@ bool UpgradeFrom53(sql::Connection* db) { |
const char kSql[] = |
"INSERT INTO " OFFLINE_PAGES_TABLE_NAME |
" (offline_id, creation_time, file_size, last_access_time, " |
- "access_count, expiration_time, client_namespace, client_id, " |
- "online_url, file_path) " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path) " |
"SELECT " |
"offline_id, creation_time, file_size, last_access_time, " |
- "access_count, expiration_time, client_namespace, client_id, " |
- "online_url, file_path " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path " |
"FROM temp_" OFFLINE_PAGES_TABLE_NAME; |
return UpgradeWithQuery(db, kSql); |
} |
@@ -90,12 +89,12 @@ bool UpgradeFrom54(sql::Connection* db) { |
const char kSql[] = |
"INSERT INTO " OFFLINE_PAGES_TABLE_NAME |
" (offline_id, creation_time, file_size, last_access_time, " |
- "access_count, expiration_time, client_namespace, client_id, " |
- "online_url, file_path, title) " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path, title) " |
"SELECT " |
"offline_id, creation_time, file_size, last_access_time, " |
- "access_count, expiration_time, client_namespace, client_id, " |
- "online_url, file_path, title " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path, title " |
"FROM temp_" OFFLINE_PAGES_TABLE_NAME; |
return UpgradeWithQuery(db, kSql); |
} |
@@ -104,12 +103,26 @@ bool UpgradeFrom55(sql::Connection* db) { |
const char kSql[] = |
"INSERT INTO " OFFLINE_PAGES_TABLE_NAME |
" (offline_id, creation_time, file_size, last_access_time, " |
- "access_count, expiration_time, client_namespace, client_id, " |
- "online_url, file_path, title) " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path, title) " |
+ "SELECT " |
+ "offline_id, creation_time, file_size, last_access_time, " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path, title " |
+ "FROM temp_" OFFLINE_PAGES_TABLE_NAME; |
+ return UpgradeWithQuery(db, kSql); |
+} |
+ |
+bool UpgradeFrom56(sql::Connection* db) { |
+ const char kSql[] = |
+ "INSERT INTO " OFFLINE_PAGES_TABLE_NAME |
+ " (offline_id, creation_time, file_size, last_access_time, " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path, title, original_url) " |
"SELECT " |
"offline_id, creation_time, file_size, last_access_time, " |
- "access_count, expiration_time, client_namespace, client_id, " |
- "online_url, file_path, title " |
+ "access_count, client_namespace, client_id, online_url, " |
+ "file_path, title, original_url " |
"FROM temp_" OFFLINE_PAGES_TABLE_NAME; |
return UpgradeWithQuery(db, kSql); |
} |
@@ -127,7 +140,8 @@ bool CreateSchema(sql::Connection* db) { |
} |
// Upgrade section. Details are described in the header file. |
- if (!db->DoesColumnExist(OFFLINE_PAGES_TABLE_NAME, "expiration_time")) { |
+ if (!db->DoesColumnExist(OFFLINE_PAGES_TABLE_NAME, "expiration_time") && |
+ !db->DoesColumnExist(OFFLINE_PAGES_TABLE_NAME, "title")) { |
if (!UpgradeFrom52(db)) |
return false; |
} else if (!db->DoesColumnExist(OFFLINE_PAGES_TABLE_NAME, "title")) { |
@@ -139,6 +153,9 @@ bool CreateSchema(sql::Connection* db) { |
} else if (!db->DoesColumnExist(OFFLINE_PAGES_TABLE_NAME, "original_url")) { |
if (!UpgradeFrom55(db)) |
return false; |
+ } else if (db->DoesColumnExist(OFFLINE_PAGES_TABLE_NAME, "expiration_time")) { |
+ if (!UpgradeFrom56(db)) |
+ return false; |
} |
// TODO(fgorski): Add indices here. |
@@ -183,18 +200,15 @@ OfflinePageItem MakeOfflinePageItem(sql::Statement* statement) { |
base::Time last_access_time = |
base::Time::FromInternalValue(statement->ColumnInt64(3)); |
int access_count = statement->ColumnInt(4); |
- base::Time expiration_time = |
- base::Time::FromInternalValue(statement->ColumnInt64(5)); |
- ClientId client_id(statement->ColumnString(6), statement->ColumnString(7)); |
- GURL url(statement->ColumnString(8)); |
- base::FilePath path(GetPathFromUTF8String(statement->ColumnString(9))); |
- base::string16 title = statement->ColumnString16(10); |
- GURL original_url(statement->ColumnString(11)); |
+ ClientId client_id(statement->ColumnString(5), statement->ColumnString(6)); |
+ GURL url(statement->ColumnString(7)); |
+ base::FilePath path(GetPathFromUTF8String(statement->ColumnString(8))); |
+ base::string16 title = statement->ColumnString16(9); |
+ GURL original_url(statement->ColumnString(10)); |
OfflinePageItem item(url, id, client_id, path, file_size, creation_time); |
item.last_access_time = last_access_time; |
item.access_count = access_count; |
- item.expiration_time = expiration_time; |
item.title = title; |
item.original_url = original_url; |
return item; |
@@ -207,9 +221,9 @@ ItemActionStatus Insert(sql::Connection* db, const OfflinePageItem& item) { |
"INSERT OR IGNORE INTO " OFFLINE_PAGES_TABLE_NAME |
" (offline_id, online_url, client_namespace, client_id, file_path, " |
"file_size, creation_time, last_access_time, access_count, " |
- "expiration_time, title, original_url)" |
+ "title, original_url)" |
" VALUES " |
- " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; |
+ " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; |
sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); |
statement.BindInt64(0, item.offline_id); |
@@ -221,9 +235,8 @@ ItemActionStatus Insert(sql::Connection* db, const OfflinePageItem& item) { |
statement.BindInt64(6, item.creation_time.ToInternalValue()); |
statement.BindInt64(7, item.last_access_time.ToInternalValue()); |
statement.BindInt(8, item.access_count); |
- statement.BindInt64(9, item.expiration_time.ToInternalValue()); |
- statement.BindString16(10, item.title); |
- statement.BindString(11, item.original_url.spec()); |
+ statement.BindString16(9, item.title); |
+ statement.BindString(10, item.original_url.spec()); |
if (!statement.Run()) |
return ItemActionStatus::STORE_ERROR; |
if (db->GetLastChangeCount() == 0) |
@@ -236,7 +249,7 @@ bool Update(sql::Connection* db, const OfflinePageItem& item) { |
"UPDATE OR IGNORE " OFFLINE_PAGES_TABLE_NAME |
" SET online_url = ?, client_namespace = ?, client_id = ?, file_path = ?," |
" file_size = ?, creation_time = ?, last_access_time = ?," |
- " access_count = ?, expiration_time = ?, title = ?, original_url = ?" |
+ " access_count = ?, title = ?, original_url = ?" |
" WHERE offline_id = ?"; |
sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql)); |
@@ -248,10 +261,9 @@ bool Update(sql::Connection* db, const OfflinePageItem& item) { |
statement.BindInt64(5, item.creation_time.ToInternalValue()); |
statement.BindInt64(6, item.last_access_time.ToInternalValue()); |
statement.BindInt(7, item.access_count); |
- statement.BindInt64(8, item.expiration_time.ToInternalValue()); |
- statement.BindString16(9, item.title); |
- statement.BindString(10, item.original_url.spec()); |
- statement.BindInt64(11, item.offline_id); |
+ statement.BindString16(8, item.title); |
+ statement.BindString(9, item.original_url.spec()); |
+ statement.BindInt64(10, item.offline_id); |
return statement.Run() && db->GetLastChangeCount() > 0; |
} |