blob: 4eb4adaf2a1ea159d366f759e2587efd26f51f8a [file]
CREATE SEQUENCE IF NOT EXISTS Alerts_seq bit_reversed_positive;
CREATE SEQUENCE IF NOT EXISTS SourceFiles_seq bit_reversed_positive;
CREATE TABLE IF NOT EXISTS Alerts (
id INT DEFAULT nextval('Alerts_seq'),
alert TEXT,
config_state INT DEFAULT 0,
last_modified INT,
sub_name TEXT,
sub_revision TEXT,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS AnomalyGroups (
id TEXT PRIMARY KEY DEFAULT spanner.generate_uuid(),
creation_time TIMESTAMPTZ DEFAULT now(),
anomaly_ids TEXT ARRAY,
group_meta_data JSONB,
common_rev_start INT,
common_rev_end INT,
action TEXT,
action_time TIMESTAMPTZ,
bisection_id TEXT,
reported_issue_id TEXT,
culprit_ids TEXT ARRAY,
last_modified_time TIMESTAMPTZ,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Autobisections (
job_id TEXT PRIMARY KEY,
anomaly_group_id TEXT,
anomaly_id TEXT,
is_real_regression BOOL,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Commits (
commit_number INT PRIMARY KEY,
git_hash TEXT NOT NULL,
commit_time INT,
author TEXT,
subject TEXT,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Culprits (
id TEXT PRIMARY KEY DEFAULT spanner.generate_uuid(),
host TEXT,
project TEXT,
ref TEXT,
revision TEXT,
last_modified INT,
anomaly_group_ids TEXT ARRAY,
issue_ids TEXT ARRAY,
group_issue_map JSONB,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Favorites (
id TEXT PRIMARY KEY DEFAULT spanner.generate_uuid(),
user_id TEXT NOT NULL,
name TEXT,
url TEXT NOT NULL,
description TEXT,
last_modified INT,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS GraphsShortcuts (
id TEXT NOT NULL PRIMARY KEY,
graphs TEXT,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS PublicTraceRules (
public_rule_expr TEXT PRIMARY KEY,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS Metadata (
source_file_id INT PRIMARY KEY,
links JSONB,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS ParamSets (
tile_number INT,
param_key TEXT,
param_value TEXT,
PRIMARY KEY (tile_number, param_key, param_value),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Postings (
tile_number INT,
key_value TEXT NOT NULL,
trace_id BYTEA,
PRIMARY KEY (tile_number, key_value, trace_id),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Regressions (
commit_number INT,
alert_id INT,
regression TEXT,
migrated BOOL,
regression_id TEXT,
PRIMARY KEY (commit_number, alert_id),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Regressions2 (
id TEXT PRIMARY KEY DEFAULT spanner.generate_uuid(),
commit_number INT,
prev_commit_number INT,
display_commit_number INT,
alert_id INT,
sub_name TEXT,
bug_id INT,
creation_time TIMESTAMPTZ DEFAULT now(),
median_before REAL,
median_after REAL,
is_improvement BOOL,
cluster_type TEXT,
cluster_summary JSONB,
frame JSONB,
legacy_key TEXT,
trace_id BYTEA,
triage_status TEXT,
triage_message TEXT,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS RegressionsShortcuts (
sid TEXT PRIMARY KEY,
anomaly_ids TEXT ARRAY,
is_legacy BOOLEAN DEFAULT FALSE,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS ReverseKeyMap (
modified_value TEXT,
param_key TEXT,
original_value TEXT,
PRIMARY KEY(modified_value, param_key),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Shortcuts (
id TEXT NOT NULL PRIMARY KEY,
trace_ids TEXT,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS SourceFiles (
source_file_id INT DEFAULT nextval('SourceFiles_seq'),
source_file TEXT NOT NULL,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (source_file_id)
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS Subscriptions (
name TEXT NOT NULL,
revision TEXT NOT NULL,
bug_labels TEXT ARRAY,
hotlists TEXT ARRAY,
bug_component TEXT,
bug_priority INT,
bug_severity INT,
bug_cc_emails TEXT ARRAY,
contact_email TEXT,
is_active BOOL,
PRIMARY KEY(name, revision),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS TraceParams (
trace_id BYTEA PRIMARY KEY,
params JSONB,
is_public BOOL DEFAULT FALSE,
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS TraceValues (
trace_id BYTEA,
commit_number INT,
val REAL,
source_file_id INT,
PRIMARY KEY (trace_id, commit_number),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS TraceValues2 (
trace_id BYTEA,
commit_number INT,
val REAL,
source_file_id INT,
benchmark TEXT,
bot TEXT,
test TEXT,
subtest_1 TEXT,
subtest_2 TEXT,
subtest_3 TEXT,
PRIMARY KEY (trace_id, commit_number),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE TABLE IF NOT EXISTS UserIssues (
user_id TEXT NOT NULL,
trace_key TEXT NOT NULL,
commit_position INT NOT NULL,
issue_id INT NOT NULL,
last_modified TIMESTAMPTZ DEFAULT now(),
PRIMARY KEY(trace_key, commit_position),
createdat TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
) TTL INTERVAL '1095 days' ON createdat;
CREATE INDEX IF NOT EXISTS idx_alerts_subname on Alerts (sub_name);
CREATE INDEX IF NOT EXISTS by_revision on Culprits (revision, host, project, ref);
CREATE INDEX IF NOT EXISTS by_user_id on Favorites (user_id);
CREATE INDEX IF NOT EXISTS by_tile_number on ParamSets (tile_number DESC);
CREATE INDEX IF NOT EXISTS by_trace_id on Postings (tile_number, trace_id, key_value);
CREATE INDEX IF NOT EXISTS by_trace_id2 on Postings (tile_number, trace_id);
CREATE INDEX IF NOT EXISTS by_key_value on Postings (tile_number, key_value);
CREATE INDEX IF NOT EXISTS by_alert_id on Regressions2 (alert_id);
CREATE INDEX IF NOT EXISTS by_sub_name_creation_time on Regressions2 (sub_name, creation_time DESC);
CREATE INDEX IF NOT EXISTS by_sub_name_triage_status_creation_time_asc on Regressions2 (sub_name, triage_status, creation_time ASC);
CREATE INDEX IF NOT EXISTS by_commit_alert on Regressions2 (commit_number, alert_id);
CREATE INDEX IF NOT EXISTS by_commit_and_prev_commit on Regressions2 (commit_number, prev_commit_number);
CREATE INDEX IF NOT EXISTS by_trace_id_and_commit on Regressions2 (trace_id, commit_number);
CREATE INDEX IF NOT EXISTS by_legacy_key on Regressions2 (legacy_key);
CREATE INDEX IF NOT EXISTS by_source_file on SourceFiles (source_file, source_file_id);
CREATE INDEX IF NOT EXISTS by_source_file_id on TraceValues (source_file_id, trace_id);
CREATE INDEX IF NOT EXISTS by_trace_id_tv2 on TraceValues2 (trace_id, benchmark, bot, test, subtest_1, subtest_2, subtest_3);