|
| 1 | +PRAGMA foreign_keys=OFF; |
| 2 | +BEGIN TRANSACTION; |
| 3 | +CREATE TABLE images ( |
| 4 | + sha256 TEXT PRIMARY KEY CHECK(length(sha256)==64), |
| 5 | + id TEXT UNIQUE CHECK(length(id)==16), |
| 6 | + date TEXT NOT NULL, |
| 7 | + size INTEGER NOT NULL, |
| 8 | + uarch TEXT NOT NULL, |
| 9 | + system TEXT NOT NULL |
| 10 | +); |
| 11 | +INSERT INTO images VALUES('3e8f96370a4685a7413d344d98f69889c0ba6bb1d6c2d3d19ce01b6079c58c68','3e8f96370a4685a7','2024-03-11 17:08:35.976000+00:00',8881353294,'x86_64','santis'); |
| 12 | +INSERT INTO images VALUES('4e8f96370a4685a7413d344d98f69889c0ba6bb1d6c2d3d19ce01b6079c58c68','4e8f96370a4685a7','2024-03-11 17:08:35.976000+00:00',8881353294,'x86_64','santis'); |
| 13 | +INSERT INTO images VALUES('1736b4bb5ad9b3c5cae8878c71782a8bf2f2f739dbce8e039b629de418cb4dab','1736b4bb5ad9b3c5','2024-02-19 06:33:57.442000+00:00',3987993166,'x86_64','santis'); |
| 14 | +CREATE TABLE uenv ( |
| 15 | + version_id INTEGER PRIMARY KEY, |
| 16 | + name TEXT NOT NULL, |
| 17 | + version TEXT NOT NULL, |
| 18 | + UNIQUE (name, version) |
| 19 | +); |
| 20 | +INSERT INTO uenv VALUES(1,'icon-wcp','v1'); |
| 21 | +INSERT INTO uenv VALUES(2,'prgenv-gnu','24.2'); |
| 22 | +INSERT INTO uenv VALUES(3,'prgenv-gnu','24.3'); |
| 23 | +CREATE TABLE tags ( |
| 24 | + version_id INTEGER, |
| 25 | + tag TEXT NOT NULL, |
| 26 | + sha256 TEXT NOT NULL, |
| 27 | + PRIMARY KEY (version_id, tag), |
| 28 | + FOREIGN KEY (version_id) |
| 29 | + REFERENCES uenv (version_id) |
| 30 | + ON DELETE CASCADE |
| 31 | + ON UPDATE CASCADE, |
| 32 | + FOREIGN KEY (sha256) |
| 33 | + REFERENCES images (sha256) |
| 34 | + ON DELETE CASCADE |
| 35 | + ON UPDATE CASCADE |
| 36 | +); |
| 37 | +INSERT INTO tags VALUES(1,'latest','3e8f96370a4685a7413d344d98f69889c0ba6bb1d6c2d3d19ce01b6079c58c68'); |
| 38 | +INSERT INTO tags VALUES(1,'v3','3e8f96370a4685a7413d344d98f69889c0ba6bb1d6c2d3d19ce01b6079c58c68'); |
| 39 | +INSERT INTO tags VALUES(2,'latest','1736b4bb5ad9b3c5cae8878c71782a8bf2f2f739dbce8e039b629de418cb4dab'); |
| 40 | +INSERT INTO tags VALUES(2,'v2','1736b4bb5ad9b3c5cae8878c71782a8bf2f2f739dbce8e039b629de418cb4dab'); |
| 41 | +INSERT INTO tags VALUES(3,'v3','4e8f96370a4685a7413d344d98f69889c0ba6bb1d6c2d3d19ce01b6079c58c68'); |
| 42 | +CREATE VIEW records AS |
| 43 | +SELECT |
| 44 | + images.system AS system, |
| 45 | + images.uarch AS uarch, |
| 46 | + uenv.name AS name, |
| 47 | + uenv.version AS version, |
| 48 | + tags.tag AS tag, |
| 49 | + images.date AS date, |
| 50 | + images.size AS size, |
| 51 | + tags.sha256 AS sha256, |
| 52 | + images.id AS id |
| 53 | +FROM tags |
| 54 | + INNER JOIN uenv ON uenv.version_id = tags.version_id |
| 55 | + INNER JOIN images ON images.sha256 = tags.sha256; |
| 56 | +COMMIT; |
0 commit comments