gnu: Add r-flowsom.
[jackhill/guix/guix.git] / guix / store / schema.sql
CommitLineData
36457566
LC
1create table if not exists ValidPaths (
2 id integer primary key autoincrement not null,
3 path text unique not null,
4 hash text not null,
5 registrationTime integer not null,
6 deriver text,
7 narSize integer
8);
9
10create table if not exists Refs (
11 referrer integer not null,
12 reference integer not null,
13 primary key (referrer, reference),
14 foreign key (referrer) references ValidPaths(id) on delete cascade,
15 foreign key (reference) references ValidPaths(id) on delete restrict
16);
17
18create index if not exists IndexReferrer on Refs(referrer);
19create index if not exists IndexReference on Refs(reference);
20
21-- Paths can refer to themselves, causing a tuple (N, N) in the Refs
22-- table. This causes a deletion of the corresponding row in
23-- ValidPaths to cause a foreign key constraint violation (due to `on
24-- delete restrict' on the `reference' column). Therefore, explicitly
25-- get rid of self-references.
26create trigger if not exists DeleteSelfRefs before delete on ValidPaths
27 begin
28 delete from Refs where referrer = old.id and reference = old.id;
29 end;
30
31create table if not exists DerivationOutputs (
32 drv integer not null,
33 id text not null, -- symbolic output id, usually "out"
34 path text not null,
35 primary key (drv, id),
36 foreign key (drv) references ValidPaths(id) on delete cascade
37);
38
39create index if not exists IndexDerivationOutputs on DerivationOutputs(path);
40
41create table if not exists FailedPaths (
42 path text primary key not null,
43 time integer not null
44);