/
ne1ghost
/
nix
Обзор
Документация
Войти
/
ne1ghost
/
nix
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/libstore/ca-specific-schema.sql
41 строка
2 KB
John Ericson
Build the local store on Windows
10 май 2024, 20:05
10 май 2024, 20:05
e0ff8da
Код
Авторство
О чём код?
-- Extension of the sql schema for content-addressed derivations. -- Won't be loaded unless the experimental feature `ca-derivations` -- is enabled create table if not exists Realisations ( id integer primary key autoincrement not null, drvPath text not null, outputName text not null, -- symbolic output id, usually "out" outputPath integer not null, signatures text, -- space-separated list foreign key (outputPath) references ValidPaths(id) on delete cascade ); create index if not exists IndexRealisations on Realisations(drvPath, outputName); -- We can end-up in a weird edge-case where a path depends on itself because -- it’s an output of a CA derivation, that happens to be the same as one of its -- dependencies. -- In that case we have a dependency loop (path -> realisation1 -> realisation2 -- -> path) that we need to break by removing the dependencies between the -- realisations create trigger if not exists DeleteSelfRefsViaRealisations before delete on ValidPaths begin delete from RealisationsRefs where realisationReference in ( select id from Realisations where outputPath = old.id ); end; create table if not exists RealisationsRefs ( referrer integer not null, realisationReference integer, foreign key (referrer) references Realisations(id) on delete cascade, foreign key (realisationReference) references Realisations(id) on delete restrict ); -- used by deletion trigger create index if not exists IndexRealisationsRefsRealisationReference on RealisationsRefs(realisationReference); -- used by QueryRealisationReferences create index if not exists IndexRealisationsRefs on RealisationsRefs(referrer); -- used by cascade deletion when ValidPaths is deleted create index if not exists IndexRealisationsRefsOnOutputPath on Realisations(outputPath);