aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cuirass/database.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 8db5411..523165d 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -38,6 +38,7 @@
db-open
db-close
db-add-specification
+ db-remove-specification
db-get-specifications
db-add-evaluation
db-set-evaluations-done
@@ -332,6 +333,16 @@ package_path_inputs, proc_input, proc_file, proc, proc_args) \
(assq-ref spec #:inputs))
spec-id)))
+(define (db-remove-specification name)
+ "Remove the specification matching NAME from the database and its inputs."
+ (with-db-critical-section db
+ (sqlite-exec db "BEGIN TRANSACTION;")
+ (sqlite-exec db "\
+DELETE FROM Inputs WHERE specification=" name ";")
+ (sqlite-exec db "\
+DELETE FROM Specifications WHERE name=" name ";")
+ (sqlite-exec db "COMMIT;")))
+
(define (db-get-inputs spec-name)
(with-db-critical-section db
(let loop ((rows (sqlite-exec