| /* |
| * 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; |