aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/schema.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/schema.sql')
-rw-r--r--src/libstore/schema.sql27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libstore/schema.sql b/src/libstore/schema.sql
new file mode 100644
index 000000000..e24132943
--- /dev/null
+++ b/src/libstore/schema.sql
@@ -0,0 +1,27 @@
+pragma foreign_keys = on;
+
+create table if not exists ValidPaths (
+ path text primary key not null,
+ hash text not null,
+ registrationTime integer not null
+);
+
+create table if not exists Refs (
+ referrer text not null,
+ reference text not null,
+ primary key (referrer, reference),
+ foreign key (referrer) references ValidPaths(path)
+ on delete cascade
+ deferrable initially deferred,
+ foreign key (reference) references ValidPaths(path)
+ on delete restrict
+ deferrable initially deferred
+);
+
+create table if not exists FailedDerivations (
+ path text primary key not null,
+ time integer not null
+);
+
+create index IndexReferrer on Refs(referrer);
+create index IndexReference on Refs(reference);