42 lines
1.7 KiB
SQL
42 lines
1.7 KiB
SQL
PRAGMA foreign_keys=ON;
|
|
|
|
CREATE TABLE IF NOT EXISTS task_lineage_supersession_initial_projections (
|
|
projection_id TEXT PRIMARY KEY,
|
|
task_id TEXT NOT NULL UNIQUE,
|
|
source_task_id TEXT NOT NULL,
|
|
supersession_ordinal INTEGER NOT NULL CHECK (supersession_ordinal = 1),
|
|
intent_sha256 TEXT NOT NULL UNIQUE,
|
|
intent_json TEXT NOT NULL,
|
|
owner_decision_sha256 TEXT NOT NULL UNIQUE,
|
|
source_task_identity_sha256 TEXT NOT NULL,
|
|
source_metadata_sha256 TEXT NOT NULL,
|
|
source_business_execution_digest TEXT NOT NULL,
|
|
canonical_child_execution_digest TEXT NOT NULL UNIQUE,
|
|
external_job_id TEXT NOT NULL,
|
|
repository TEXT NOT NULL,
|
|
target_branch TEXT NOT NULL,
|
|
generation INTEGER NOT NULL,
|
|
adapter TEXT NOT NULL,
|
|
required_capability TEXT NOT NULL,
|
|
expected_revision INTEGER NOT NULL CHECK (expected_revision = 1),
|
|
applied_revision INTEGER NOT NULL CHECK (applied_revision = 2),
|
|
metadata_sha256 TEXT NOT NULL,
|
|
required_capabilities_sha256 TEXT NOT NULL,
|
|
projection_event_sha256 TEXT NOT NULL,
|
|
receipt_json TEXT NOT NULL,
|
|
receipt_sha256 TEXT NOT NULL UNIQUE,
|
|
created_at TEXT NOT NULL,
|
|
FOREIGN KEY (source_task_id, supersession_ordinal)
|
|
REFERENCES task_lineage_supersessions(source_task_id, supersession_ordinal)
|
|
);
|
|
|
|
CREATE TRIGGER IF NOT EXISTS task_lineage_supersession_initial_projections_no_update
|
|
BEFORE UPDATE ON task_lineage_supersession_initial_projections BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_LINEAGE_SUPERSESSION_INITIAL_PROJECTION_APPEND_ONLY');
|
|
END;
|
|
|
|
CREATE TRIGGER IF NOT EXISTS task_lineage_supersession_initial_projections_no_delete
|
|
BEFORE DELETE ON task_lineage_supersession_initial_projections BEGIN
|
|
SELECT RAISE(ABORT, 'TASK_LINEAGE_SUPERSESSION_INITIAL_PROJECTION_APPEND_ONLY');
|
|
END;
|