local parseIntTransform = {"calculate":"parseInt(datum.count)","as":"x"},
'train-rollbacks':{
title: 'Patches and rollbacks',
db: 'train',
query:"select version, patches, rollbacks, rollbacks_time / 3600 as rollbacks_hours, total_time / 3600 as total_hours, count(b.id) as blockers, datetime(start_time+total_time, 'unixepoch') as end_time, datetime(start_time, 'unixepoch', 'weekday 3') as mid_week, datetime(start_time, 'unixepoch') as start_time from train t, blocker b on t.id=b.train_id group by t.version order by start_time desc limit 3",
library: 'vega',
display:{
local chart = self,
local xf = { field: 'start_time', type: 'temporal' },
query:"select id, version, patches, total_time, datetime(start_time, 'unixepoch') as start_time, datetime(start_time+total_time, 'unixepoch') as end_time from train order by start_time asc",
query:"select id, train_id, datetime(blocked, 'unixepoch') as start_time, datetime(unblocked, 'unixepoch') as end_time, blocker, unblocker, removed, resolved, task, url, status, group_blocked, group_unblocked, count(*) as count from blocker group by train_id order by blocked, unblocked asc",
query:"with b2 as ( select unblocker, count(*) as unblock_count from blocker group by unblocker having unblock_count > 5), b1 as ( select blocker, count(*) as block_count from blocker group by blocker having block_count > 5 ) select blocker as who, block_count, 0-unblock_count as unblock_count from b1 join b2 on b1.blocker=b2.unblocker ",
query:"select blocker, unblocker,datetime(min(blocked), 'unixepoch') as start_time, datetime(max(unblocked), 'unixepoch') as end_time, avg(unblocked-blocked)/3600 as blocked_time, count(*) as count from blocker group by unblocker having block_count > 4 ",
query:"SELECT t.id, t.version, datetime(start_time, 'unixepoch') AS start_time, (start_time - created)/(60*60) AS cycle_time, (start_time - submitted)/(60*60) AS lead_time, datetime(created, 'unixepoch') AS created, datetime(submitted, 'unixepoch') submitted FROM patch p JOIN train t ON t.id = p.train_id WHERE ( lead_time > 0 AND cycle_time > 0 ) ORDER BY start_time DESC",