| 1 | -- Additive diagnostics v4 migration. Apply before the matching Worker. |
| 2 | ALTER TABLE groups ADD COLUMN regression_review TEXT NOT NULL DEFAULT ''; |
| 3 | ALTER TABLE groups ADD COLUMN resolution_platform TEXT NOT NULL DEFAULT ''; |
| 4 | ALTER TABLE groups ADD COLUMN resolution_runtime TEXT NOT NULL DEFAULT ''; |
| 5 | ALTER TABLE groups ADD COLUMN resolution_basis TEXT NOT NULL DEFAULT ''; |
| 6 | ALTER TABLE groups ADD COLUMN last_category TEXT NOT NULL DEFAULT ''; |
| 7 | |
| 8 | ALTER TABLE reports ADD COLUMN event_id TEXT NOT NULL DEFAULT ''; |
| 9 | ALTER TABLE reports ADD COLUMN incident_id TEXT NOT NULL DEFAULT ''; |
| 10 | ALTER TABLE reports ADD COLUMN diagnostics TEXT NOT NULL DEFAULT ''; |
| 11 | ALTER TABLE reports ADD COLUMN error_family TEXT NOT NULL DEFAULT ''; |
| 12 | CREATE INDEX IF NOT EXISTS reports_event_id ON reports (event_id); |
| 13 | |
| 14 | CREATE TABLE IF NOT EXISTS report_events ( |
| 15 | event_id TEXT PRIMARY KEY, |
| 16 | incident_id TEXT NOT NULL DEFAULT '', |
| 17 | fingerprint TEXT NOT NULL, |
| 18 | received_at TEXT NOT NULL, |
| 19 | projected_at TEXT NOT NULL |
| 20 | ); |
| 21 | CREATE INDEX IF NOT EXISTS report_events_fingerprint ON report_events (fingerprint, received_at); |
| 22 | CREATE INDEX IF NOT EXISTS report_events_incident ON report_events (incident_id, received_at); |
| 23 | |
| 24 | CREATE TABLE IF NOT EXISTS report_attribution_daily ( |
| 25 | date TEXT NOT NULL, |
| 26 | fingerprint TEXT NOT NULL, |
| 27 | subject_version TEXT NOT NULL DEFAULT '', |
| 28 | observer_version TEXT NOT NULL DEFAULT '', |
| 29 | subject_channel TEXT NOT NULL DEFAULT '', |
| 30 | observer_channel TEXT NOT NULL DEFAULT '', |
| 31 | category TEXT NOT NULL DEFAULT '', |
| 32 | evidence TEXT NOT NULL DEFAULT '', |
| 33 | events INTEGER NOT NULL DEFAULT 0, |
| 34 | PRIMARY KEY (date, fingerprint, subject_version, observer_version, subject_channel, observer_channel, category, evidence) |
| 35 | ); |
| 36 | CREATE INDEX IF NOT EXISTS report_attribution_fingerprint_date ON report_attribution_daily (fingerprint, date); |
| 37 | |
| 38 | CREATE TABLE IF NOT EXISTS report_incidents ( |
| 39 | date TEXT NOT NULL, |
| 40 | fingerprint TEXT NOT NULL, |
| 41 | incident_id TEXT NOT NULL, |
| 42 | subject_version TEXT NOT NULL DEFAULT '', |
| 43 | PRIMARY KEY (date, fingerprint, incident_id) |
| 44 | ); |
| 45 | CREATE INDEX IF NOT EXISTS report_incidents_fingerprint_date ON report_incidents (fingerprint, date); |
| 46 | |
| 47 | INSERT OR IGNORE INTO diagnostics_meta (key, value) |
| 48 | VALUES ('structured_attribution_since', date('now')); |
| 49 |