Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Unified Diff: trunk/src/chrome/browser/history/visit_database.cc

Issue 19637009: Revert 212459 "Remove TextDatabase from the history service." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/chrome/browser/history/visit_database.cc
===================================================================
--- trunk/src/chrome/browser/history/visit_database.cc (revision 212472)
+++ trunk/src/chrome/browser/history/visit_database.cc (working copy)
@@ -34,10 +34,19 @@
"from_visit INTEGER,"
"transition INTEGER DEFAULT 0 NOT NULL,"
"segment_id INTEGER,"
- // Some old DBs may have an "is_indexed" field here, but this is no
- // longer used and should NOT be read or written from any longer.
+ // True when we have indexed data for this visit.
+ "is_indexed BOOLEAN,"
"visit_duration INTEGER DEFAULT 0 NOT NULL)"))
return false;
+ } else if (!GetDB().DoesColumnExist("visits", "is_indexed")) {
+ // Old versions don't have the is_indexed column, we can just add that and
+ // not worry about different database revisions, since old ones will
+ // continue to work.
+ //
+ // TODO(brettw) this should be removed once we think everybody has been
+ // updated (added early Mar 2008).
+ if (!GetDB().Execute("ALTER TABLE visits ADD COLUMN is_indexed BOOLEAN"))
+ return false;
}
// Visit source table contains the source information for all the visits. To
@@ -89,8 +98,9 @@
visit->referring_visit = statement.ColumnInt64(3);
visit->transition = content::PageTransitionFromInt(statement.ColumnInt(4));
visit->segment_id = statement.ColumnInt64(5);
+ visit->is_indexed = !!statement.ColumnInt(6);
visit->visit_duration =
- base::TimeDelta::FromInternalValue(statement.ColumnInt64(6));
+ base::TimeDelta::FromInternalValue(statement.ColumnInt64(7));
}
// static
@@ -144,14 +154,15 @@
VisitID VisitDatabase::AddVisit(VisitRow* visit, VisitSource source) {
sql::Statement statement(GetDB().GetCachedStatement(SQL_FROM_HERE,
"INSERT INTO visits "
- "(url, visit_time, from_visit, transition, segment_id, "
- "visit_duration) VALUES (?,?,?,?,?,?)"));
+ "(url, visit_time, from_visit, transition, segment_id, is_indexed, "
+ "visit_duration) VALUES (?,?,?,?,?,?,?)"));
statement.BindInt64(0, visit->url_id);
statement.BindInt64(1, visit->visit_time.ToInternalValue());
statement.BindInt64(2, visit->referring_visit);
statement.BindInt64(3, visit->transition);
statement.BindInt64(4, visit->segment_id);
- statement.BindInt64(5, visit->visit_duration.ToInternalValue());
+ statement.BindInt64(5, visit->is_indexed);
+ statement.BindInt64(6, visit->visit_duration.ToInternalValue());
if (!statement.Run()) {
VLOG(0) << "Failed to execute visit insert statement: "
@@ -230,15 +241,16 @@
sql::Statement statement(GetDB().GetCachedStatement(SQL_FROM_HERE,
"UPDATE visits SET "
- "url=?,visit_time=?,from_visit=?,transition=?,segment_id=?,"
+ "url=?,visit_time=?,from_visit=?,transition=?,segment_id=?,is_indexed=?,"
"visit_duration=? WHERE id=?"));
statement.BindInt64(0, visit.url_id);
statement.BindInt64(1, visit.visit_time.ToInternalValue());
statement.BindInt64(2, visit.referring_visit);
statement.BindInt64(3, visit.transition);
statement.BindInt64(4, visit.segment_id);
- statement.BindInt64(5, visit.visit_duration.ToInternalValue());
- statement.BindInt64(6, visit.visit_id);
+ statement.BindInt64(5, visit.is_indexed);
+ statement.BindInt64(6, visit.visit_duration.ToInternalValue());
+ statement.BindInt64(7, visit.visit_id);
return statement.Run();
}
@@ -255,6 +267,17 @@
return FillVisitVector(statement, visits);
}
+bool VisitDatabase::GetIndexedVisitsForURL(URLID url_id, VisitVector* visits) {
+ visits->clear();
+
+ sql::Statement statement(GetDB().GetCachedStatement(SQL_FROM_HERE,
+ "SELECT" HISTORY_VISIT_ROW_FIELDS
+ "FROM visits "
+ "WHERE url=? AND is_indexed=1"));
+ statement.BindInt64(0, url_id);
+ return FillVisitVector(statement, visits);
+}
+
bool VisitDatabase::GetVisitsForURLWithOptions(URLID url_id,
const QueryOptions& options,
VisitVector* visits) {
« no previous file with comments | « trunk/src/chrome/browser/history/visit_database.h ('k') | trunk/src/chrome/browser/history/visit_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698