INCLUDE PERFETTO MODULE chrome.speedometer_2_1;
INCLUDE PERFETTO MODULE chrome.speedometer_3;
CREATE PERFETTO FUNCTION _chrome_speedometer_version()
RETURNS STRING AS
WITH
num_measures AS (
SELECT
'2.1' AS version,
count(*) AS num_measures
FROM chrome_speedometer_2_1_measure
UNION ALL
SELECT
'3' AS version,
count(*) AS num_measures
FROM chrome_speedometer_3_measure
)
SELECT
version
FROM num_measures
ORDER BY
num_measures DESC
LIMIT 1;
CREATE PERFETTO TABLE chrome_speedometer_measure (
ts TIMESTAMP,
dur DURATION,
name STRING,
iteration LONG,
suite_name STRING,
test_name STRING,
measure_type STRING
) AS
WITH
all_versions AS (
SELECT
'2.1' AS version,
*
FROM chrome_speedometer_2_1_measure
UNION ALL
SELECT
'3' AS version,
*
FROM chrome_speedometer_3_measure
)
SELECT
ts,
dur,
name,
iteration,
suite_name,
test_name,
measure_type
FROM all_versions
WHERE
version = _chrome_speedometer_version();
CREATE PERFETTO TABLE chrome_speedometer_iteration (
ts TIMESTAMP,
dur DURATION,
name STRING,
iteration LONG,
geomean DOUBLE,
score DOUBLE
) AS
WITH
all_versions AS (
SELECT
'2.1' AS version,
*
FROM chrome_speedometer_2_1_iteration
UNION ALL
SELECT
'3' AS version,
*
FROM chrome_speedometer_3_iteration
)
SELECT
ts,
dur,
name,
iteration,
geomean,
score
FROM all_versions
WHERE
version = _chrome_speedometer_version();
CREATE PERFETTO FUNCTION chrome_speedometer_score()
RETURNS DOUBLE AS
SELECT
iif(
_chrome_speedometer_version() = '3',
chrome_speedometer_3_score(),
chrome_speedometer_2_1_score()
);
CREATE PERFETTO FUNCTION chrome_speedometer_renderer_main_utid()
RETURNS LONG AS
SELECT
iif(
_chrome_speedometer_version() = '3',
chrome_speedometer_3_renderer_main_utid(),
chrome_speedometer_2_1_renderer_main_utid()
);