19 lines
574 B
PL/PgSQL
19 lines
574 B
PL/PgSQL
BEGIN;
|
|
|
|
CREATE TABLE IF NOT EXISTS execution_claim (
|
|
id TEXT PRIMARY KEY,
|
|
user_id TEXT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE,
|
|
run_id TEXT NOT NULL REFERENCES strategy_run(run_id) ON DELETE CASCADE,
|
|
mode TEXT NOT NULL,
|
|
logical_time TIMESTAMPTZ NOT NULL,
|
|
claimed_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uq_execution_claim_scope
|
|
ON execution_claim (user_id, run_id, logical_time);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_execution_claim_run_claimed
|
|
ON execution_claim (run_id, claimed_at DESC);
|
|
|
|
COMMIT;
|