X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=init_pool.sql;h=2b67617c3414ab59a0048ccfe35049747c183753;hb=9540d873fa78598454af57f5f8a4875969ed0439;hp=6d3b6e4913c1bb1bae818c4b26b02cb022bb88a4;hpb=50b0221a1a0304bfbb404be7c64a2dadefd998d6;p=dak.git diff --git a/init_pool.sql b/init_pool.sql index 6d3b6e49..2b67617c 100644 --- a/init_pool.sql +++ b/init_pool.sql @@ -1,5 +1,5 @@ DROP DATABASE projectb; -CREATE DATABASE projectb; +CREATE DATABASE projectb WITH ENCODING = 'SQL_ASCII'; \c projectb @@ -28,6 +28,17 @@ CREATE TABLE maintainer ( name TEXT UNIQUE NOT NULL ); +CREATE TABLE uid ( + id SERIAL PRIMARY KEY, + uid TEXT UNIQUE NOT NULL +); + +CREATE TABLE fingerprint ( + id SERIAL PRIMARY KEY, + fingerprint TEXT UNIQUE NOT NULL, + uid INT4 REFERENCES uid +); + CREATE TABLE location ( id SERIAL PRIMARY KEY, path TEXT NOT NULL, @@ -54,6 +65,8 @@ CREATE TABLE source ( version TEXT NOT NULL, maintainer INT4 NOT NULL, -- REFERENCES maintainer file INT4 UNIQUE NOT NULL, -- REFERENCES files + install_date TIMESTAMP NOT NULL, + sig_fpr INT4 NOT NULL, -- REFERENCES fingerprint unique (source, version) ); @@ -74,6 +87,7 @@ CREATE TABLE binaries ( file INT4 UNIQUE NOT NULL, -- REFERENCES files, type TEXT NOT NULL, -- joeyh@ doesn't want .udebs and .debs with the same name, which is why the unique () doesn't mention type + sig_fpr INT4 NOT NULL, -- REFERENCES fingerprint unique (package, version, architecture) ); @@ -87,6 +101,11 @@ CREATE TABLE suite ( description TEXT ); +CREATE TABLE queue ( + id SERIAL PRIMARY KEY, + queue_name TEXT NOT NULL +); + CREATE TABLE suite_architectures ( suite INT4 NOT NULL, -- REFERENCES suite architecture INT4 NOT NULL, -- REFERENCES architecture @@ -134,10 +153,20 @@ CREATE TABLE override ( unique (suite, component, package, type) ); +CREATE TABLE queue_build ( + suite INT4 NOT NULL, -- references suite + queue INT4 NOT NULL, -- references queue + filename TEXT NOT NULL, + in_queue BOOLEAN NOT NULL, + last_used TIMESTAMP +); + -- Critical indexes CREATE INDEX bin_associations_bin ON bin_associations (bin); CREATE INDEX src_associations_source ON src_associations (source); CREATE INDEX source_maintainer ON source (maintainer); CREATE INDEX binaries_maintainer ON binaries (maintainer); +CREATE INDEX binaries_fingerprint on binaries (sig_fpr); +CREATE INDEX source_fingerprint on source (sig_fpr); CREATE INDEX dsc_files_file ON dsc_files (file);