blob: 100f07403423f5b2b44293f044d294f5761d0dde [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
DROP TABLE IF EXISTS tracing_mark_write_split;
CREATE TABLE tracing_mark_write_split (
raw_ftrace_entry_id INT REFERENCES raw_ftrace_entries (id),
atrace_type CHAR(1), -- only null for the first 2 sync timers. usually 'B', 'C', E', ...
atrace_pid INT, -- only null for first 2 sync timers
atrace_message, -- usually null for type='E' etc.
atrace_count, -- usually non-null only for 'C'
UNIQUE(raw_ftrace_entry_id) -- drops redundant inserts into table
);
INSERT INTO tracing_mark_write_split
WITH
pivoted AS (
SELECT tx.predictorset_id,
--ty.predictorset_id,
--tz.predictorset_id,
--tzz.predictorset_id,
tx.predictor_name AS atrace_type,
CAST(ty.predictor_name AS integer) AS atrace_pid,
tz.predictor_name AS atrace_message,
CAST(tzz.predictor_name AS integer) AS atrace_count
FROM (SELECT * from tracing_mark_write_split_array WHERE gen = 1) AS tx
LEFT JOIN
(SELECT * FROM tracing_mark_write_split_array WHERE gen = 2) AS ty
ON tx.predictorset_id = ty.predictorset_id
LEFT JOIN
(SELECT * FROM tracing_mark_write_split_array WHERE gen = 3) AS tz
ON tx.predictorset_id = tz.predictorset_id
LEFT JOIN
(SELECT * FROM tracing_mark_write_split_array WHERE gen = 4) AS tzz
ON tx.predictorset_id = tzz.predictorset_id
)
SELECT * from pivoted ORDER BY predictorset_id;-- LIMIT 100;
SELECT * FROM tracing_mark_write_split;