Add attachment_idx column, constraint and populate it
This commit is contained in:
parent
e73293c4e0
commit
7cb508eb8a
|
@ -0,0 +1,11 @@
|
||||||
|
WITH indexed_attachments AS (
|
||||||
|
SELECT
|
||||||
|
attachment_id,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY post_id ORDER BY attachment_id) AS index
|
||||||
|
FROM
|
||||||
|
attachments
|
||||||
|
)
|
||||||
|
UPDATE attachments
|
||||||
|
SET attachment_idx = indexed_attachments.index
|
||||||
|
FROM indexed_attachments
|
||||||
|
WHERE attachments.attachment_id = indexed_attachments.attachment_id;
|
|
@ -121,12 +121,16 @@ CREATE TABLE IF NOT EXISTS attachments
|
||||||
, board_filename text NOT NULL
|
, board_filename text NOT NULL
|
||||||
, spoiler boolean NOT NULL DEFAULT true
|
, spoiler boolean NOT NULL DEFAULT true
|
||||||
, file_size_bytes int
|
, file_size_bytes int
|
||||||
|
, attachment_idx int NOT NULL
|
||||||
, CONSTRAINT post_fk FOREIGN KEY (post_id) REFERENCES posts (post_id) ON DELETE CASCADE
|
, CONSTRAINT post_fk FOREIGN KEY (post_id) REFERENCES posts (post_id) ON DELETE CASCADE
|
||||||
|
, CONSTRAINT unique_post_attachment_idx UNIQUE (post_id, attachment_idx)
|
||||||
);
|
);
|
||||||
CREATE INDEX attachments_creation_time_idx ON attachments (creation_time);
|
CREATE INDEX attachments_creation_time_idx ON attachments (creation_time);
|
||||||
CREATE INDEX attachments_post_id_idx ON attachments (post_id);
|
CREATE INDEX attachments_post_id_idx ON attachments (post_id);
|
||||||
CREATE INDEX attachments_sha256_hash_idx ON attachments (sha256_hash);
|
CREATE INDEX attachments_sha256_hash_idx ON attachments (sha256_hash);
|
||||||
--
|
CREATE INDEX attachments_attachment_idx_idx ON attachments (attachment_idx);
|
||||||
|
|
||||||
|
|
||||||
-- Index using the bktree extension for quickly getting the closest phashes
|
-- Index using the bktree extension for quickly getting the closest phashes
|
||||||
CREATE INDEX attachments_phash_bktree_index ON attachments USING spgist (phash bktree_ops);
|
CREATE INDEX attachments_phash_bktree_index ON attachments USING spgist (phash bktree_ops);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue