Page MenuHomeSoftware Heritage
Paste P229

(An Untitled Masterwork)
ActivePublic

Authored by seirl on Feb 28 2018, 7:14 PM.
CREATE DOMAIN sha1 AS bytea CHECK (length(value) = 20);
CREATE TABLE content (
id sha1 PRIMARY KEY, -- SHA1 checksum
length integer
);
CREATE TABLE chunk (
id sha1 PRIMARY KEY, -- SHA1 checksum
length integer
);
CREATE TYPE chunking_hash as enum ('rabin', 'buzhash');
CREATE TABLE chunking_method (
id serial PRIMARY KEY,
hash chunking_hash,
min_block_size bigint,
average_block_size bigint,
hash_window_size bigint,
);
CREATE TABLE chunked_content (
content_id sha1 REFERENCES content(id),
chunk_id sha1 REFERENCES chunk(id),
method_id integer REFERENCES chunking_method(id),
position integer
);
CREATE INDEX ON chunked_content (content_id);
CREATE INDEX ON chunked_content (content_id);
CREATE UNIQUE INDEX ON chunked_content (content_id, chunk_id, position);