aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2021-11-05 11:17:22 +0100
committerThéophane Hufschmitt <theophane.hufschmitt@tweag.io>2022-04-21 10:06:39 +0200
commit86d7a11c6b338a73c30476be13a6cac562e309c3 (patch)
tree42e3dbc1dcc095fb5d8c653fd790d69925610d74
parent74d6782a6a864eed4c49ab606d130aec1201e584 (diff)
Make sure to delete all the realisation refs
Deleting just one will only work in the test cases where I didn’t bother creating too many of them :p
-rw-r--r--src/libstore/ca-specific-schema.sql2
-rw-r--r--src/libstore/local-store.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/libstore/ca-specific-schema.sql b/src/libstore/ca-specific-schema.sql
index d2ea347fb..c01dc5a76 100644
--- a/src/libstore/ca-specific-schema.sql
+++ b/src/libstore/ca-specific-schema.sql
@@ -21,7 +21,7 @@ create index if not exists IndexRealisations on Realisations(drvPath, outputName
-- realisations
create trigger if not exists DeleteSelfRefsViaRealisations before delete on ValidPaths
begin
- delete from RealisationsRefs where realisationReference = (
+ delete from RealisationsRefs where realisationReference in (
select id from Realisations where outputPath = old.id
);
end;
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index e64917956..76524b01c 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -148,7 +148,7 @@ void migrateCASchema(SQLite& db, Path schemaPath, AutoCloseFD& lockFd)
db.exec(R"(
create trigger if not exists DeleteSelfRefsViaRealisations before delete on ValidPaths
begin
- delete from RealisationsRefs where realisationReference = (
+ delete from RealisationsRefs where realisationReference in (
select id from Realisations where outputPath = old.id
);
end;