| CREATE VIEW counters AS |
| SELECT * |
| FROM counter v |
| JOIN counter_track t ON v.track_id = t.id |
| ORDER BY ts; |
| |
| CREATE VIEW slice AS |
| SELECT |
| *, |
| category AS cat, |
| id AS slice_id |
| FROM internal_slice; |
| |
| CREATE VIEW instant AS |
| SELECT ts, track_id, name, arg_set_id |
| FROM slice |
| WHERE dur = 0; |
| |
| CREATE VIEW sched AS |
| SELECT |
| *, |
| ts + dur as ts_end |
| FROM sched_slice; |
| |
| CREATE VIEW slices AS |
| SELECT * FROM slice; |
| |
| CREATE VIEW thread AS |
| SELECT |
| id as utid, |
| * |
| FROM internal_thread; |
| |
| CREATE VIEW process AS |
| SELECT |
| id as upid, |
| * |
| FROM internal_process; |
| |
| -- This should be kept in sync with GlobalArgsTracker::AddArgSet. |
| CREATE VIEW args AS |
| SELECT |
| *, |
| CASE value_type |
| WHEN 'int' THEN CAST(int_value AS text) |
| WHEN 'uint' THEN CAST(int_value AS text) |
| WHEN 'string' THEN string_value |
| WHEN 'real' THEN CAST(real_value AS text) |
| WHEN 'pointer' THEN printf('0x%x', int_value) |
| WHEN 'bool' THEN ( |
| CASE WHEN int_value <> 0 THEN 'true' |
| ELSE 'false' END) |
| WHEN 'json' THEN string_value |
| ELSE NULL END AS display_value |
| FROM internal_args; |
| |
| CREATE VIEW perf_session |
| AS |
| SELECT *, id AS perf_session_id |
| FROM __intrinsic_perf_session; |