X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=sql%2Fpr0n.sql;h=371e05cf4fdfef765c35318276fef867dad6ac57;hp=fe749b9e6ed116717b796f24f8e558247d75cb5e;hb=5e125fda482f5887459721b76ef24cf82aa4202b;hpb=04cab7c72227c290224ab0c0b0a52c0893516552 diff --git a/sql/pr0n.sql b/sql/pr0n.sql index fe749b9..371e05c 100644 --- a/sql/pr0n.sql +++ b/sql/pr0n.sql @@ -3,6 +3,7 @@ CREATE TABLE events ( "date" character varying NOT NULL, name character varying NOT NULL, vhost character varying NOT NULL, + hidden boolean NOT NULL DEFAULT false, PRIMARY KEY (vhost, event) ); @@ -18,8 +19,10 @@ CREATE TABLE last_picture_cache ( FOREIGN KEY (vhost,event) REFERENCES events(vhost,event) ); +CREATE SEQUENCE imageid_seq; + CREATE TABLE images ( - id serial NOT NULL PRIMARY KEY, + id integer DEFAULT nextval('imageid_seq') NOT NULL PRIMARY KEY, vhost character varying NOT NULL, event character varying NOT NULL, filename character varying NOT NULL, @@ -31,8 +34,16 @@ CREATE TABLE images ( selected boolean DEFAULT false, model character varying, lens character varying, + is_render boolean NOT NULL DEFAULT false, -- Is this a render of another picture? (If so, don't show it separately.) + render_id integer, -- If not NULL, show this picture instead of ourselves for all JPEG-creation purposes. + + FOREIGN KEY (vhost,event) REFERENCES events (vhost,event), + FOREIGN KEY (vhost,event,render_id) REFERENCES images (vhost,event,id), + + -- Redundant with the primary key, but the foreign key needs it. + UNIQUE (vhost,event,id), - FOREIGN KEY (vhost,event) REFERENCES events (vhost,event) + CHECK (NOT (is_render AND (render_id IS NOT NULL))) ); CREATE UNIQUE INDEX unique_filenames ON images USING btree (vhost, event, filename); @@ -49,31 +60,14 @@ CREATE TABLE deleted_images ( selected boolean, model character varying, lens character varying -); - -CREATE TABLE fake_files ( - vhost character varying NOT NULL, - event character varying NOT NULL, - filename character varying NOT NULL, - expires_at timestamp without time zone NOT NULL, - - PRIMARY KEY ( vhost, event, filename ), - FOREIGN KEY (vhost,event) REFERENCES events (vhost,event) -); - -CREATE TABLE shadow_files ( - vhost character varying NOT NULL, - event character varying NOT NULL, - filename character varying NOT NULL, - id integer NOT NULL, - expires_at timestamp without time zone NOT NULL + is_render boolean NOT NULL, + render_id integer, ); CREATE TABLE users ( username character varying NOT NULL, - sha1password character(27) NOT NULL, vhost character varying NOT NULL, - digest_ha1_hex character(32) + cryptpassword character varying NOT NULL ); -- Mainly used for manual queries -- usually too slow to be very useful @@ -86,24 +80,12 @@ CREATE TABLE exif_info ( PRIMARY KEY ( image, key ) ); -CREATE INDEX exif_info_key ON exif_info ( key ); -CLUSTER exif_info_key ON exif_info; - -CREATE TABLE tags ( - image integer NOT NULL REFERENCES images (id) ON DELETE CASCADE, - tag varchar NOT NULL, - - PRIMARY KEY ( image, tag ) -); -CREATE INDEX tags_tag ON tags ( tag ); +CLUSTER exif_info_pkey ON exif_info; GRANT INSERT ON TABLE deleted_images TO pr0n; GRANT INSERT,SELECT,UPDATE,DELETE ON TABLE events TO pr0n; -GRANT INSERT,SELECT,UPDATE,DELETE ON TABLE fake_files TO pr0n; -GRANT SELECT,UPDATE ON TABLE images_id_seq TO pr0n; +GRANT SELECT,UPDATE ON TABLE imageid_seq TO pr0n; GRANT INSERT,SELECT,UPDATE,DELETE ON TABLE images TO pr0n; -GRANT INSERT,SELECT,UPDATE,DELETE ON TABLE shadow_files TO pr0n; GRANT SELECT,UPDATE ON TABLE users TO pr0n; GRANT SELECT,INSERT,DELETE ON TABLE exif_info TO pr0n; -GRANT SELECT,INSERT,DELETE ON TABLE tags TO pr0n; GRANT INSERT,SELECT,UPDATE,DELETE ON TABLE last_picture_cache TO pr0n;