]> git.sesse.net Git - pr0n/blobdiff - sql/pr0n.sql
Fix infobox with DPR != 1.
[pr0n] / sql / pr0n.sql
index 0bca09ae79eb41c16ad6231f1c2bc06416171962..371e05cf4fdfef765c35318276fef867dad6ac57 100644 (file)
@@ -3,7 +3,7 @@ CREATE TABLE events (
     "date" character varying NOT NULL,
     name character varying NOT NULL,
     vhost character varying NOT NULL,
-    last_update timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    hidden boolean NOT NULL DEFAULT false,
 
     PRIMARY KEY (vhost, event)
 );
@@ -13,24 +13,37 @@ CREATE TABLE last_picture_cache (
    vhost varchar NOT NULL,
    event varchar NOT NULL,
    last_picture timestamp without time zone,
+   last_update timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
 
    PRIMARY KEY (vhost,event),
-   FOREIGN KEY (vhost,event) REFERNECES events(vhost,event)
+   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,
-    width integer DEFAULT -1 NOT NULL,
-    height integer DEFAULT -1 NOT NULL,
+    width integer,
+    height integer,
     uploadedby character varying NOT NULL,
     "date" timestamp without time zone,
     takenby character varying NOT NULL,
     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);
 
@@ -39,38 +52,26 @@ CREATE TABLE deleted_images (
     vhost character varying,
     event character varying NOT NULL,
     filename character varying NOT NULL,
-    width integer DEFAULT -1 NOT NULL,
-    height integer DEFAULT -1 NOT NULL,
+    width integer,
+    height integer,
     uploadedby character varying,
     "date" timestamp without time zone,
     takenby character varying NOT NULL,
-    selected boolean
-);
-
-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
+    selected boolean,
+    model character varying,
+    lens character varying
+    is_render boolean NOT NULL,
+    render_id integer,
 );
 
 CREATE TABLE users (
     username character varying NOT NULL,
-    sha1password character(28) NOT NULL,
-    vhost character varying NOT NULL
+    vhost character varying NOT NULL,
+    cryptpassword character varying NOT NULL
 );
 
+-- Mainly used for manual queries -- usually too slow to be very useful
+-- for web views in the long run.
 CREATE TABLE exif_info (
     image integer NOT NULL REFERENCES images (id) ON DELETE CASCADE,
     key varchar NOT NULL,
@@ -79,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 ON TABLE users 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;