diff options
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 37 | ||||
-rw-r--r-- | sqitch/pg/deploy/derivation_output_details.sql | 7 | ||||
-rw-r--r-- | sqitch/pg/revert/derivation_output_details.sql | 7 | ||||
-rw-r--r-- | sqitch/pg/verify/derivation_output_details.sql | 7 | ||||
-rw-r--r-- | sqitch/sqitch.plan | 1 | ||||
-rw-r--r-- | sqitch/sqlite/deploy/derivation_output_details.sql | 12 | ||||
-rw-r--r-- | sqitch/sqlite/revert/derivation_output_details.sql | 7 | ||||
-rw-r--r-- | sqitch/sqlite/verify/derivation_output_details.sql | 7 |
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; |