| Index: webkit/appcache/appcache_database.cc
|
| diff --git a/webkit/appcache/appcache_database.cc b/webkit/appcache/appcache_database.cc
|
| index ec49f885a346a439b0b1e101052115ae321f535c..61d4e53e0e7fee7d2dbb8f98b22733542ca94a13 100644
|
| --- a/webkit/appcache/appcache_database.cc
|
| +++ b/webkit/appcache/appcache_database.cc
|
| @@ -240,9 +240,7 @@ bool AppCacheDatabase::FindOriginsWithGroups(std::set<GURL>* origins) {
|
| const char* kSql =
|
| "SELECT DISTINCT(origin) FROM Groups";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareUniqueStatement(kSql, &statement))
|
| - return false;
|
| + sql::Statement statement(db_->GetUniqueStatement(kSql));
|
|
|
| while (statement.Step())
|
| origins->insert(GURL(statement.ColumnString(0)));
|
| @@ -306,12 +304,10 @@ bool AppCacheDatabase::FindGroup(int64 group_id, GroupRecord* record) {
|
| " creation_time, last_access_time"
|
| " FROM Groups WHERE group_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
|
|
| statement.BindInt64(0, group_id);
|
| - if (!statement.Step() || !statement.Succeeded())
|
| + if (!statement.Step())
|
| return false;
|
|
|
| ReadGroupRecord(statement, record);
|
| @@ -330,12 +326,10 @@ bool AppCacheDatabase::FindGroupForManifestUrl(
|
| " creation_time, last_access_time"
|
| " FROM Groups WHERE manifest_url = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindString(0, manifest_url.spec());
|
| - if (!statement.Step() || !statement.Succeeded())
|
| +
|
| + if (!statement.Step())
|
| return false;
|
|
|
| ReadGroupRecord(statement, record);
|
| @@ -354,11 +348,9 @@ bool AppCacheDatabase::FindGroupsForOrigin(
|
| " creation_time, last_access_time"
|
| " FROM Groups WHERE origin = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindString(0, origin.spec());
|
| +
|
| while (statement.Step()) {
|
| records->push_back(GroupRecord());
|
| ReadGroupRecord(statement, &records->back());
|
| @@ -379,12 +371,10 @@ bool AppCacheDatabase::FindGroupForCache(int64 cache_id, GroupRecord* record) {
|
| " FROM Groups g, Caches c"
|
| " WHERE c.cache_id = ? AND c.group_id = g.group_id";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| - if (!statement.Step() || !statement.Succeeded())
|
| +
|
| + if (!statement.Step())
|
| return false;
|
|
|
| ReadGroupRecord(statement, record);
|
| @@ -399,12 +389,10 @@ bool AppCacheDatabase::UpdateGroupLastAccessTime(
|
| const char* kSql =
|
| "UPDATE Groups SET last_access_time = ? WHERE group_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, time.ToInternalValue());
|
| statement.BindInt64(1, group_id);
|
| +
|
| return statement.Run() && db_->GetLastChangeCount();
|
| }
|
|
|
| @@ -417,15 +405,13 @@ bool AppCacheDatabase::InsertGroup(const GroupRecord* record) {
|
| " (group_id, origin, manifest_url, creation_time, last_access_time)"
|
| " VALUES(?, ?, ?, ?, ?)";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, record->group_id);
|
| statement.BindString(1, record->origin.spec());
|
| statement.BindString(2, record->manifest_url.spec());
|
| statement.BindInt64(3, record->creation_time.ToInternalValue());
|
| statement.BindInt64(4, record->last_access_time.ToInternalValue());
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -436,11 +422,9 @@ bool AppCacheDatabase::DeleteGroup(int64 group_id) {
|
| const char* kSql =
|
| "DELETE FROM Groups WHERE group_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, group_id);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -453,12 +437,10 @@ bool AppCacheDatabase::FindCache(int64 cache_id, CacheRecord* record) {
|
| "SELECT cache_id, group_id, online_wildcard, update_time, cache_size"
|
| " FROM Caches WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| - if (!statement.Step() || !statement.Succeeded())
|
| +
|
| + if (!statement.Step())
|
| return false;
|
|
|
| ReadCacheRecord(statement, record);
|
| @@ -474,12 +456,10 @@ bool AppCacheDatabase::FindCacheForGroup(int64 group_id, CacheRecord* record) {
|
| "SELECT cache_id, group_id, online_wildcard, update_time, cache_size"
|
| " FROM Caches WHERE group_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, group_id);
|
| - if (!statement.Step() || !statement.Succeeded())
|
| +
|
| + if (!statement.Step())
|
| return false;
|
|
|
| ReadCacheRecord(statement, record);
|
| @@ -512,15 +492,13 @@ bool AppCacheDatabase::InsertCache(const CacheRecord* record) {
|
| " update_time, cache_size)"
|
| " VALUES(?, ?, ?, ?, ?)";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, record->cache_id);
|
| statement.BindInt64(1, record->group_id);
|
| statement.BindBool(2, record->online_wildcard);
|
| statement.BindInt64(3, record->update_time.ToInternalValue());
|
| statement.BindInt64(4, record->cache_size);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -531,11 +509,9 @@ bool AppCacheDatabase::DeleteCache(int64 cache_id) {
|
| const char* kSql =
|
| "DELETE FROM Caches WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -549,11 +525,9 @@ bool AppCacheDatabase::FindEntriesForCache(
|
| "SELECT cache_id, url, flags, response_id, response_size FROM Entries"
|
| " WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| while (statement.Step()) {
|
| records->push_back(EntryRecord());
|
| ReadEntryRecord(statement, &records->back());
|
| @@ -573,11 +547,9 @@ bool AppCacheDatabase::FindEntriesForUrl(
|
| "SELECT cache_id, url, flags, response_id, response_size FROM Entries"
|
| " WHERE url = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindString(0, url.spec());
|
| +
|
| while (statement.Step()) {
|
| records->push_back(EntryRecord());
|
| ReadEntryRecord(statement, &records->back());
|
| @@ -597,13 +569,11 @@ bool AppCacheDatabase::FindEntry(
|
| "SELECT cache_id, url, flags, response_id, response_size FROM Entries"
|
| " WHERE cache_id = ? AND url = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| statement.BindString(1, url.spec());
|
| - if (!statement.Step() || !statement.Succeeded())
|
| +
|
| + if (!statement.Step())
|
| return false;
|
|
|
| ReadEntryRecord(statement, record);
|
| @@ -620,15 +590,13 @@ bool AppCacheDatabase::InsertEntry(const EntryRecord* record) {
|
| "INSERT INTO Entries (cache_id, url, flags, response_id, response_size)"
|
| " VALUES(?, ?, ?, ?, ?)";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, record->cache_id);
|
| statement.BindString(1, record->url.spec());
|
| statement.BindInt(2, record->flags);
|
| statement.BindInt64(3, record->response_id);
|
| statement.BindInt64(4, record->response_size);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -655,11 +623,9 @@ bool AppCacheDatabase::DeleteEntriesForCache(int64 cache_id) {
|
| const char* kSql =
|
| "DELETE FROM Entries WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -671,13 +637,11 @@ bool AppCacheDatabase::AddEntryFlags(
|
| const char* kSql =
|
| "UPDATE Entries SET flags = flags | ? WHERE cache_id = ? AND url = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt(0, additional_flags);
|
| statement.BindInt64(1, cache_id);
|
| statement.BindString(2, entry_url.spec());
|
| +
|
| return statement.Run() && db_->GetLastChangeCount();
|
| }
|
|
|
| @@ -694,12 +658,11 @@ bool AppCacheDatabase::FindNamespacesForOrigin(
|
| "SELECT cache_id, origin, type, namespace_url, target_url"
|
| " FROM Namespaces WHERE origin = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindString(0, origin.spec());
|
| +
|
| ReadNamespaceRecords(&statement, intercepts, fallbacks);
|
| +
|
| return statement.Succeeded();
|
| }
|
|
|
| @@ -716,12 +679,11 @@ bool AppCacheDatabase::FindNamespacesForCache(
|
| "SELECT cache_id, origin, type, namespace_url, target_url"
|
| " FROM Namespaces WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| ReadNamespaceRecords(&statement, intercepts, fallbacks);
|
| +
|
| return statement.Succeeded();
|
| }
|
|
|
| @@ -735,15 +697,13 @@ bool AppCacheDatabase::InsertNamespace(
|
| " (cache_id, origin, type, namespace_url, target_url)"
|
| " VALUES (?, ?, ?, ?, ?)";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, record->cache_id);
|
| statement.BindString(1, record->origin.spec());
|
| statement.BindInt(2, record->type);
|
| statement.BindString(3, record->namespace_url.spec());
|
| statement.BindString(4, record->target_url.spec());
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -770,11 +730,9 @@ bool AppCacheDatabase::DeleteNamespacesForCache(int64 cache_id) {
|
| const char* kSql =
|
| "DELETE FROM Namespaces WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -788,11 +746,9 @@ bool AppCacheDatabase::FindOnlineWhiteListForCache(
|
| "SELECT cache_id, namespace_url FROM OnlineWhiteLists"
|
| " WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| while (statement.Step()) {
|
| records->push_back(OnlineWhiteListRecord());
|
| this->ReadOnlineWhiteListRecord(statement, &records->back());
|
| @@ -809,12 +765,10 @@ bool AppCacheDatabase::InsertOnlineWhiteList(
|
| const char* kSql =
|
| "INSERT INTO OnlineWhiteLists (cache_id, namespace_url) VALUES (?, ?)";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, record->cache_id);
|
| statement.BindString(1, record->namespace_url.spec());
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -841,11 +795,9 @@ bool AppCacheDatabase::DeleteOnlineWhiteListForCache(int64 cache_id) {
|
| const char* kSql =
|
| "DELETE FROM OnlineWhiteLists WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| -
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, cache_id);
|
| +
|
| return statement.Run();
|
| }
|
|
|
| @@ -858,12 +810,11 @@ bool AppCacheDatabase::GetDeletableResponseIds(
|
| "SELECT response_id FROM DeletableResponseIds "
|
| " WHERE rowid <= ?"
|
| " LIMIT ?";
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
|
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
| statement.BindInt64(0, max_rowid);
|
| statement.BindInt64(1, limit);
|
| +
|
| while (statement.Step())
|
| response_ids->push_back(statement.ColumnInt64(0));
|
| return statement.Succeeded();
|
| @@ -886,6 +837,7 @@ bool AppCacheDatabase::DeleteDeletableResponseIds(
|
| bool AppCacheDatabase::RunCachedStatementWithIds(
|
| const sql::StatementID& statement_id, const char* sql,
|
| const std::vector<int64>& ids) {
|
| + DCHECK(sql);
|
| if (!LazyOpen(true))
|
| return false;
|
|
|
| @@ -893,9 +845,7 @@ bool AppCacheDatabase::RunCachedStatementWithIds(
|
| if (!transaction.Begin())
|
| return false;
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(statement_id, sql, &statement))
|
| - return false;
|
| + sql::Statement statement(db_->GetCachedStatement(statement_id, sql));
|
|
|
| std::vector<int64>::const_iterator iter = ids.begin();
|
| while (iter != ids.end()) {
|
| @@ -911,37 +861,15 @@ bool AppCacheDatabase::RunCachedStatementWithIds(
|
|
|
| bool AppCacheDatabase::RunUniqueStatementWithInt64Result(
|
| const char* sql, int64* result) {
|
| - sql::Statement statement;
|
| - if (!PrepareUniqueStatement(sql, &statement) ||
|
| - !statement.Step()) {
|
| + DCHECK(sql);
|
| + sql::Statement statement(db_->GetUniqueStatement(sql));
|
| + if (!statement.Step()) {
|
| return false;
|
| }
|
| *result = statement.ColumnInt64(0);
|
| return true;
|
| }
|
|
|
| -bool AppCacheDatabase::PrepareUniqueStatement(
|
| - const char* sql, sql::Statement* statement) {
|
| - DCHECK(sql && statement);
|
| - statement->Assign(db_->GetUniqueStatement(sql));
|
| - if (!statement->is_valid()) {
|
| - NOTREACHED() << db_->GetErrorMessage();
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -bool AppCacheDatabase::PrepareCachedStatement(
|
| - const sql::StatementID& id, const char* sql, sql::Statement* statement) {
|
| - DCHECK(sql && statement);
|
| - statement->Assign(db_->GetCachedStatement(id, sql));
|
| - if (!statement->is_valid()) {
|
| - NOTREACHED() << db_->GetErrorMessage();
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| bool AppCacheDatabase::FindResponseIdsForCacheHelper(
|
| int64 cache_id, std::vector<int64>* ids_vector,
|
| std::set<int64>* ids_set) {
|
| @@ -953,9 +881,7 @@ bool AppCacheDatabase::FindResponseIdsForCacheHelper(
|
| const char* kSql =
|
| "SELECT response_id FROM Entries WHERE cache_id = ?";
|
|
|
| - sql::Statement statement;
|
| - if (!PrepareCachedStatement(SQL_FROM_HERE, kSql, &statement))
|
| - return false;
|
| + sql::Statement statement(db_->GetCachedStatement(SQL_FROM_HERE, kSql));
|
|
|
| statement.BindInt64(0, cache_id);
|
| while (statement.Step()) {
|
|
|