diff options
author | Christopher Baines <mail@cbaines.net> | 2021-05-21 18:07:29 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2021-05-21 20:29:38 +0100 |
commit | 3782b81da0ed258c10acb7ffc43b18d5af50e28b (patch) | |
tree | b92e2ba7902c1e5ba01f888fd0518cbc6d45c464 /sqitch/sqlite/deploy | |
parent | 132a94246f80e17922f2e6d5b584324a09cb0bf8 (diff) | |
download | build-coordinator-3782b81da0ed258c10acb7ffc43b18d5af50e28b.tar build-coordinator-3782b81da0ed258c10acb7ffc43b18d5af50e28b.tar.gz |
Introduce an outputs table
Diffstat (limited to 'sqitch/sqlite/deploy')
-rw-r--r-- | sqitch/sqlite/deploy/create_outputs.sql | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/sqitch/sqlite/deploy/create_outputs.sql b/sqitch/sqlite/deploy/create_outputs.sql new file mode 100644 index 0000000..03f0b42 --- /dev/null +++ b/sqitch/sqlite/deploy/create_outputs.sql @@ -0,0 +1,59 @@ +-- Deploy guix-build-coordinator:create_outputs to sqlite + +PRAGMA foreign_keys = OFF; + +BEGIN; + +CREATE TABLE outputs ( + id INTEGER PRIMARY KEY NOT NULL, + output TEXT NOT NULL +); + +INSERT INTO outputs (output) SELECT DISTINCT output FROM derivation_outputs; + +CREATE INDEX outputs_output ON outputs (output); + + + + +CREATE TABLE derivation_outputs_new ( + id INTEGER PRIMARY KEY ASC, + derivation_id INTEGER NOT NULL REFERENCES derivations (id), + name TEXT NOT NULL, + output_id INTEGER NOT NULL REFERENCES outputs (id) +); + +INSERT INTO derivation_outputs_new + SELECT derivation_outputs.id, derivation_id, name, outputs.id + FROM derivation_outputs + INNER JOIN outputs + ON derivation_outputs.output = outputs.output; + +DROP TABLE derivation_outputs; +ALTER TABLE derivation_outputs_new RENAME TO derivation_outputs; + +CREATE INDEX derivation_outputs_output_id_idx + ON derivation_outputs (output_id); +CREATE UNIQUE INDEX derivation_outputs_unique_idx + ON derivation_outputs (derivation_id, name); + + +CREATE TABLE unbuilt_outputs_new ( + output_id INTEGER PRIMARY KEY REFERENCES outputs (id) +); + +UPDATE unbuilt_outputs_new SET output_id = ( + SELECT id + FROM unbuilt_outputs + INNER JOIN outputs + ON unbuilt_outputs.output = outputs.output +); + +DROP TABLE unbuilt_outputs; +ALTER TABLE unbuilt_outputs_new RENAME TO unbuilt_outputs; + +PRAGMA foreign_key_check; + +COMMIT; + +PRAGMA foreign_keys = ON; |