From 9ca9ed84f0a404c3740a7ac33978bd9d6c6a0c4a Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Fri, 11 Jan 2019 19:43:07 -0800 Subject: first draft implementation of ref interning --- rust/src/database_schema.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'rust/src/database_schema.rs') diff --git a/rust/src/database_schema.rs b/rust/src/database_schema.rs index 3bc57d95..0a067a10 100644 --- a/rust/src/database_schema.rs +++ b/rust/src/database_schema.rs @@ -238,6 +238,13 @@ table! { } } +table! { + refs_blob (sha1) { + sha1 -> Text, + refs_json -> Jsonb, + } +} + table! { release_contrib (id) { id -> Int8, @@ -273,17 +280,10 @@ table! { } table! { - release_ref (id) { - id -> Int8, + release_ref (release_rev, index_val) { release_rev -> Uuid, - target_release_ident_id -> Nullable, - index_val -> Nullable, - key -> Nullable, - extra_json -> Nullable, - container_name -> Nullable, - year -> Nullable, - title -> Nullable, - locator -> Nullable, + index_val -> Int4, + target_release_ident_id -> Uuid, } } @@ -293,6 +293,7 @@ table! { extra_json -> Nullable, work_ident_id -> Uuid, container_ident_id -> Nullable, + refs_blob_sha1 -> Nullable, title -> Text, release_type -> Nullable, release_status -> Nullable, @@ -439,6 +440,7 @@ joinable!(release_ident -> release_rev (rev_id)); joinable!(release_ref -> release_ident (target_release_ident_id)); joinable!(release_ref -> release_rev (release_rev)); joinable!(release_rev -> container_ident (container_ident_id)); +joinable!(release_rev -> refs_blob (refs_blob_sha1)); joinable!(release_rev -> work_ident (work_ident_id)); joinable!(release_rev_abstract -> abstracts (abstract_sha1)); joinable!(release_rev_abstract -> release_rev (release_rev)); @@ -475,6 +477,7 @@ allow_tables_to_appear_in_same_query!( fileset_rev_file, fileset_rev_release, fileset_rev_url, + refs_blob, release_contrib, release_edit, release_ident, -- cgit v1.2.3