aboutsummaryrefslogtreecommitdiffstats
path: root/sql/postgres/patch-file.sql
blob: 332cc8df49e3c394edcf88b4246b7eab94d3d98e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
CREATE TABLE file (
  file_id BIGSERIAL NOT NULL,
  file_name TEXT NOT NULL,
  file_latest BIGINT NOT NULL,
  file_type SMALLINT NOT NULL,
  file_deleted SMALLINT NOT NULL,
  PRIMARY KEY(file_id)
);

CREATE UNIQUE INDEX file_name ON file (file_name);

CREATE INDEX file_latest ON file (file_latest);


CREATE TABLE filerevision (
  fr_id BIGSERIAL NOT NULL,
  fr_file BIGINT NOT NULL,
  fr_size BIGINT DEFAULT 0 NOT NULL,
  fr_width INT DEFAULT 0 NOT NULL,
  fr_height INT DEFAULT 0 NOT NULL,
  fr_metadata TEXT NOT NULL,
  fr_bits INT DEFAULT 0 NOT NULL,
  fr_description_id BIGINT NOT NULL,
  fr_actor BIGINT NOT NULL,
  fr_timestamp TIMESTAMPTZ NOT NULL,
  fr_sha1 TEXT DEFAULT '' NOT NULL,
  fr_archive_name TEXT DEFAULT '' NOT NULL,
  fr_deleted SMALLINT NOT NULL,
  PRIMARY KEY(fr_id)
);

CREATE INDEX fr_actor_timestamp ON filerevision (fr_actor, fr_timestamp);

CREATE INDEX fr_size ON filerevision (fr_size);

CREATE INDEX fr_timestamp ON filerevision (fr_timestamp);

CREATE INDEX fr_sha1 ON filerevision (fr_sha1);

CREATE INDEX fr_file ON filerevision (fr_file);


CREATE TABLE filetypes (
  ft_id SMALLSERIAL NOT NULL,
  ft_media_type TEXT NOT NULL,
  ft_major_mime TEXT NOT NULL,
  ft_minor_mime TEXT NOT NULL,
  PRIMARY KEY(ft_id)
);

CREATE UNIQUE INDEX ft_media_mime ON filetypes (
  ft_media_type, ft_major_mime, ft_minor_mime
);