pub const CPU_DDL: &str = "
CREATE TABLE IF NOT EXISTS samples (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL REFERENCES sessions(id),
symbol_id INTEGER REFERENCES symbols(id),
thread TEXT,
start_us REAL,
duration_us REAL,
cpu_ns INTEGER,
weight REAL NOT NULL DEFAULT 1.0,
stack_json TEXT,
layer_id INTEGER REFERENCES layers(id)
);
CREATE INDEX IF NOT EXISTS idx_samples_sym ON samples(session_id, symbol_id);
CREATE INDEX IF NOT EXISTS idx_samples_start ON samples(session_id, start_us);
CREATE TABLE IF NOT EXISTS counters (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL REFERENCES sessions(id),
name TEXT NOT NULL,
symbol_id INTEGER REFERENCES symbols(id),
value REAL NOT NULL,
unit TEXT,
layer_id INTEGER REFERENCES layers(id)
);
CREATE INDEX IF NOT EXISTS idx_counters_name ON counters(session_id, name);
";Expand description
CPU-unified profile tables — sampling + EAV counters. Used by native-cpu, managed-dotnet, jvm, python, js/node target classes.