aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm37
-rw-r--r--sqitch/pg/deploy/derivation_output_details.sql7
-rw-r--r--sqitch/pg/revert/derivation_output_details.sql7
-rw-r--r--sqitch/pg/verify/derivation_output_details.sql7
-rw-r--r--sqitch/sqitch.plan1
-rw-r--r--sqitch/sqlite/deploy/derivation_output_details.sql12
-rw-r--r--sqitch/sqlite/revert/derivation_output_details.sql7
-rw-r--r--sqitch/sqlite/verify/derivation_output_details.sql7
8 files changed, 81 insertions, 4 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index b7e3fc2..2249428 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -10,6 +10,7 @@
#:use-module (sqlite3)
#:use-module (fibers)
#:use-module (prometheus)
+ #:use-module (guix base16)
#:use-module (guix derivations)
#:use-module (guix-build-coordinator utils)
#:use-module (guix-build-coordinator utils fibers)
@@ -3991,11 +3992,20 @@ INSERT OR IGNORE INTO unbuilt_outputs (output_id) VALUES (:output_id)"
"
INSERT INTO derivation_outputs (derivation_id, name, output_id)
VALUES (:derivation_id, :name, :output_id)"
+ #:cache? #t))
+
+ (output-details-statement
+ (sqlite-prepare
+ db
+ "
+INSERT INTO derivation_output_details
+ (derivation_output_id, hash_algorithm, hash, recursive)
+VALUES (:derivation_output_id, :hash_algorithm, :hash, :recursive)"
#:cache? #t)))
(let ((result
- (map (match-lambda
- ((name . output-id)
+ (map (match-lambda*
+ (((name . output-id) derivation-output)
(sqlite-bind-arguments
statement
#:derivation_id derivation-id
@@ -4004,8 +4014,27 @@ INSERT INTO derivation_outputs (derivation_id, name, output_id)
(sqlite-step statement)
(sqlite-reset statement)
- (cons name (last-insert-rowid db))))
- derivation-outputs-with-ids)))
+ (let ((derivation-output-id
+ (last-insert-rowid db)))
+ (sqlite-bind-arguments
+ output-details-statement
+ #:derivation_output_id derivation-output-id
+ #:hash_algorithm (and=> (derivation-output-hash-algo
+ derivation-output)
+ symbol->string)
+ #:hash (and=> (derivation-output-hash derivation-output)
+ bytevector->base16-string)
+ #:recursive
+ (if (derivation-output-recursive? derivation-output)
+ 1
+ 0))
+
+ (sqlite-step output-details-statement)
+ (sqlite-reset output-details-statement)
+
+ (cons name derivation-output-id))))
+ derivation-outputs-with-ids
+ (map cdr derivation-outputs))))
(for-each (lambda (output-id)
(unless (output-has-successful-build? output-id)
diff --git a/sqitch/pg/deploy/derivation_output_details.sql b/sqitch/pg/deploy/derivation_output_details.sql
new file mode 100644
index 0000000..51ff376
--- /dev/null
+++ b/sqitch/pg/deploy/derivation_output_details.sql
@@ -0,0 +1,7 @@
+-- Deploy guix-build-coordinator:derivation_output_details to pg
+
+BEGIN;
+
+-- XXX Add DDLs here.
+
+COMMIT;
diff --git a/sqitch/pg/revert/derivation_output_details.sql b/sqitch/pg/revert/derivation_output_details.sql
new file mode 100644
index 0000000..2052bce
--- /dev/null
+++ b/sqitch/pg/revert/derivation_output_details.sql
@@ -0,0 +1,7 @@
+-- Revert guix-build-coordinator:derivation_output_details from pg
+
+BEGIN;
+
+-- XXX Add DDLs here.
+
+COMMIT;
diff --git a/sqitch/pg/verify/derivation_output_details.sql b/sqitch/pg/verify/derivation_output_details.sql
new file mode 100644
index 0000000..8a8c9c9
--- /dev/null
+++ b/sqitch/pg/verify/derivation_output_details.sql
@@ -0,0 +1,7 @@
+-- Verify guix-build-coordinator:derivation_output_details on pg
+
+BEGIN;
+
+-- XXX Add verifications here.
+
+ROLLBACK;
diff --git a/sqitch/sqitch.plan b/sqitch/sqitch.plan
index 333d7b2..8415341 100644
--- a/sqitch/sqitch.plan
+++ b/sqitch/sqitch.plan
@@ -38,3 +38,4 @@ create_unprocessed_builds_with_derived_priorities 2021-10-22T14:52:18Z Christoph
add_agents_active 2021-11-12T14:00:52Z Christopher Baines <mail@cbaines.net> # Add agents.active
output_metadata_index 2021-11-18T00:18:12Z Christopher Baines <mail@cbaines.net> # Add index on output_metadata
recreate_unprocessed_builds_with_derived_priorities 2021-12-22T11:09:54Z Christopher Baines <mail@cbaines.net> # Recreate unprocessed_builds_with_derived_priorities
+derivation_output_details 2022-07-07T18:12:27Z Chris <chris@felis> # Add derivation_output_details
diff --git a/sqitch/sqlite/deploy/derivation_output_details.sql b/sqitch/sqlite/deploy/derivation_output_details.sql
new file mode 100644
index 0000000..65d5423
--- /dev/null
+++ b/sqitch/sqlite/deploy/derivation_output_details.sql
@@ -0,0 +1,12 @@
+-- Deploy guix-build-coordinator:derivation_output_details to sqlite
+
+BEGIN;
+
+CREATE TABLE derivation_output_details (
+ derivation_output_id INTEGER PRIMARY KEY ASC,
+ hash_algorithm TEXT,
+ hash TEXT,
+ recursive BOOLEAN NOT NULL
+);
+
+COMMIT;
diff --git a/sqitch/sqlite/revert/derivation_output_details.sql b/sqitch/sqlite/revert/derivation_output_details.sql
new file mode 100644
index 0000000..3718ce8
--- /dev/null
+++ b/sqitch/sqlite/revert/derivation_output_details.sql
@@ -0,0 +1,7 @@
+-- Revert guix-build-coordinator:derivation_output_details from sqlite
+
+BEGIN;
+
+-- XXX Add DDLs here.
+
+COMMIT;
diff --git a/sqitch/sqlite/verify/derivation_output_details.sql b/sqitch/sqlite/verify/derivation_output_details.sql
new file mode 100644
index 0000000..ca9cff8
--- /dev/null
+++ b/sqitch/sqlite/verify/derivation_output_details.sql
@@ -0,0 +1,7 @@
+-- Verify guix-build-coordinator:derivation_output_details on sqlite
+
+BEGIN;
+
+-- XXX Add verifications here.
+
+ROLLBACK;