Index: chrome/browser/history/visit_database.cc |
=================================================================== |
--- chrome/browser/history/visit_database.cc (revision 19822) |
+++ chrome/browser/history/visit_database.cc (working copy) |
@@ -213,6 +213,35 @@ |
FillVisitVector(*statement, visits); |
} |
+void VisitDatabase::GetVisitsInRangeForTransition( |
+ Time begin_time, |
+ Time end_time, |
+ int max_results, |
+ PageTransition::Type transition, |
+ VisitVector* visits) { |
+ DCHECK(visits); |
+ visits->clear(); |
+ |
+ SQLITE_UNIQUE_STATEMENT(statement, GetStatementCache(), |
+ "SELECT" HISTORY_VISIT_ROW_FIELDS "FROM visits " |
+ "WHERE visit_time >= ? AND visit_time < ? " |
+ "AND (transition & ?) == ?" |
+ "ORDER BY visit_time LIMIT ?"); |
+ if (!statement.is_valid()) |
+ return; |
+ |
+ // See GetVisibleVisitsInRange for more info on how these times are bound. |
+ int64 end = end_time.ToInternalValue(); |
+ statement->bind_int64(0, begin_time.ToInternalValue()); |
+ statement->bind_int64(1, end ? end : std::numeric_limits<int64>::max()); |
+ statement->bind_int(2, PageTransition::CORE_MASK); |
+ statement->bind_int(3, transition); |
+ statement->bind_int64(4, |
+ max_results ? max_results : std::numeric_limits<int64>::max()); |
+ |
+ FillVisitVector(*statement, visits); |
+} |
+ |
void VisitDatabase::GetVisibleVisitsInRange(Time begin_time, Time end_time, |
bool most_recent_visit_only, |
int max_count, |