Create sqlstats table with query perf logs

Adds a new table that keeps track of the queue time
and run time for the last 100 queries. Also adds basic
plumbing through the UI.

Bug: 115958658
Change-Id: I19d59e9a980d0634ca68982990c635303d1e1c10
diff --git a/src/trace_processor/trace_storage.cc b/src/trace_processor/trace_storage.cc
index 82a3ded..e54cf3c 100644
--- a/src/trace_processor/trace_storage.cc
+++ b/src/trace_processor/trace_storage.cc
@@ -49,5 +49,26 @@
   *this = TraceStorage();
 }
 
+void TraceStorage::SqlStats::RecordQueryBegin(const std::string& query,
+                                              uint64_t time_queued,
+                                              uint64_t time_started) {
+  if (queries_.size() >= kMaxLogEntries) {
+    queries_.pop_front();
+    times_queued_.pop_front();
+    times_started_.pop_front();
+    times_ended_.pop_front();
+  }
+  queries_.push_back(query);
+  times_queued_.push_back(time_queued);
+  times_started_.push_back(time_started);
+  times_ended_.push_back(0);
+}
+
+void TraceStorage::SqlStats::RecordQueryEnd(uint64_t time_ended) {
+  PERFETTO_DCHECK(!times_ended_.empty());
+  PERFETTO_DCHECK(times_ended_.back() == 0);
+  times_ended_.back() = time_ended;
+}
+
 }  // namespace trace_processor
 }  // namespace perfetto