ALTER TABLE source ADD CONSTRAINT source_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) MATCH FULL;
ALTER TABLE source ADD CONSTRAINT source_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
+ALTER TABLE source ADD CONSTRAINT source_sig_fpr FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id) MATCH FULL;
ALTER TABLE dsc_files ADD CONSTRAINT dsc_files_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
ALTER TABLE dsc_files ADD CONSTRAINT dsc_files_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
ALTER TABLE binaries ADD CONSTRAINT binaries_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
ALTER TABLE binaries ADD CONSTRAINT binaries_architecture FOREIGN KEY (architecture) REFERENCES architecture(id) MATCH FULL;
ALTER TABLE binaries ADD CONSTRAINT binaries_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
+ALTER TABLE binaries ADD CONSTRAINT binaries_sig_fpr FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id) MATCH FULL;
ALTER TABLE suite_architectures ADD CONSTRAINT suite_architectures_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
ALTER TABLE suite_architectures ADD CONSTRAINT suite_architectures_architecture FOREIGN KEY (architecture) REFERENCES architecture(id) MATCH FULL;
ALTER TABLE bin_associations ADD CONSTRAINT bin_associations_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
ALTER TABLE bin_associations ADD CONSTRAINT bin_associations_bin FOREIGN KEY (bin) REFERENCES binaries(id) MATCH FULL;
-
+
ALTER TABLE src_associations ADD CONSTRAINT src_associations_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
ALTER TABLE src_associations ADD CONSTRAINT src_associations_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
-- Then correct all the id SERIAL PRIMARY KEY columns...
CREATE FUNCTION files_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM files'
+ AS 'SELECT max(id) FROM files'
LANGUAGE 'sql';
CREATE FUNCTION source_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM source'
+ AS 'SELECT max(id) FROM source'
LANGUAGE 'sql';
CREATE FUNCTION src_associations_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM src_associations'
+ AS 'SELECT max(id) FROM src_associations'
LANGUAGE 'sql';
CREATE FUNCTION dsc_files_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM dsc_files'
+ AS 'SELECT max(id) FROM dsc_files'
LANGUAGE 'sql';
CREATE FUNCTION binaries_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM binaries'
+ AS 'SELECT max(id) FROM binaries'
LANGUAGE 'sql';
CREATE FUNCTION bin_associations_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM bin_associations'
+ AS 'SELECT max(id) FROM bin_associations'
LANGUAGE 'sql';
CREATE FUNCTION section_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM section'
+ AS 'SELECT max(id) FROM section'
LANGUAGE 'sql';
CREATE FUNCTION priority_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM priority'
+ AS 'SELECT max(id) FROM priority'
LANGUAGE 'sql';
CREATE FUNCTION override_type_id_max() RETURNS INT4
- AS 'SELECT max(id) FROM override_type'
+ AS 'SELECT max(id) FROM override_type'
LANGUAGE 'sql';
SELECT setval('files_id_seq', files_id_max());
VACUUM override;
-- FIXME: has to be a better way to do this
-GRANT ALL ON
+GRANT ALL ON
architecture, architecture_id_seq, archive, archive_id_seq,
bin_associations, bin_associations_id_seq, binaries,
binaries_id_seq, component, component_id_seq, dsc_files,
TO GROUP ftpmaster;
-- Read only access to user 'nobody'
-GRANT SELECT ON
+GRANT SELECT ON
architecture, architecture_id_seq, archive, archive_id_seq,
bin_associations, bin_associations_id_seq, binaries,
binaries_id_seq, component, component_id_seq, dsc_files,
name TEXT UNIQUE NOT NULL
);
+CREATE TABLE fingerprint (
+ id SERIAL PRIMARY KEY,
+ fingerprint TEXT UNIQUE NOT NULL
+);
+
CREATE TABLE location (
id SERIAL PRIMARY KEY,
path TEXT NOT NULL,
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)
);
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)
);