Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F7147885
D599.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
D599.diff
View Options
diff --git a/sql/upgrades/116.sql b/sql/upgrades/116.sql
new file mode 100644
--- /dev/null
+++ b/sql/upgrades/116.sql
@@ -0,0 +1,81 @@
+-- SWH Indexer DB schema upgrade
+-- from_version: 115
+-- to_version: 116
+-- description:
+
+insert into dbversion(version, release, description)
+values(116, now(), 'Work In Progress');
+
+drop table origin_metadata_translation;
+
+create table origin_intrinsic_metadata(
+ origin_id bigserial not null,
+ metadata jsonb,
+ indexer_configuration_id bigint not null,
+ from_revision sha1_git not null
+);
+
+comment on table origin_intrinsic_metadata is 'keeps intrinsic metadata for an origin';
+comment on column origin_intrinsic_metadata.origin_id is 'the entry id in origin';
+comment on column origin_intrinsic_metadata.metadata is 'metadata extracted from a revision';
+comment on column origin_intrinsic_metadata.indexer_configuration_id is 'tool used to generate this metadata';
+comment on column origin_intrinsic_metadata.from_revision is 'sha1 of the revision this metadata was copied from.';
+
+-- create a temporary table for retrieving origin_intrinsic_metadata
+create or replace function swh_mktemp_origin_intrinsic_metadata()
+ returns void
+ language sql
+as $$
+ create temporary table tmp_origin_intrinsic_metadata (
+ like origin_intrinsic_metadata including defaults
+ ) on commit drop;
+$$;
+
+comment on function swh_mktemp_origin_intrinsic_metadata() is 'Helper table to add origin intrinsic metadata';
+
+
+-- add tmp_origin_intrinsic_metadata entries to origin_intrinsic_metadata,
+-- overwriting duplicates if conflict_update is true, skipping duplicates
+-- otherwise.
+--
+-- If filtering duplicates is in order, the call to
+-- swh_origin_intrinsic_metadata_missing must take place before calling this
+-- function.
+--
+-- operates in bulk: 0. swh_mktemp(content_language), 1. COPY to
+-- tmp_origin_intrinsic_metadata, 2. call this function
+create or replace function swh_origin_intrinsic_metadata_add(
+ conflict_update boolean)
+ returns void
+ language plpgsql
+as $$
+begin
+ if conflict_update then
+ insert into origin_intrinsic_metadata (origin_id, metadata, indexer_configuration_id, from_revision)
+ select origin_id, metadata, indexer_configuration_id, from_revision
+ from tmp_origin_intrinsic_metadata
+ on conflict(origin_id, indexer_configuration_id)
+ do update set metadata = excluded.metadata;
+
+ else
+ insert into origin_intrinsic_metadata (origin_id, metadata, indexer_configuration_id, from_revision)
+ select origin_id, metadata, indexer_configuration_id, from_revision
+ from tmp_origin_intrinsic_metadata
+ on conflict(origin_id, indexer_configuration_id)
+ do nothing;
+ end if;
+ return;
+end
+$$;
+
+comment on function swh_origin_intrinsic_metadata_add(boolean) IS 'Add new origin intrinsic metadata';
+
+
+-- origin_intrinsic_metadata
+create unique index origin_intrinsic_metadata_pkey on origin_intrinsic_metadata(origin_id, indexer_configuration_id);
+alter table origin_intrinsic_metadata add primary key using index origin_intrinsic_metadata_pkey;
+
+alter table origin_intrinsic_metadata add constraint origin_intrinsic_metadata_indexer_configuration_id_fkey foreign key (indexer_configuration_id) references indexer_configuration(id) not valid;
+alter table origin_intrinsic_metadata validate constraint origin_intrinsic_metadata_indexer_configuration_id_fkey;
+alter table origin_intrinsic_metadata add constraint origin_intrinsic_metadata_revision_metadata_fkey foreign key (from_revision, indexer_configuration_id) references revision_metadata(id, indexer_configuration_id) not valid;
+alter table origin_intrinsic_metadata validate constraint origin_intrinsic_metadata_revision_metadata_fkey;
diff --git a/swh/indexer/sql/30-swh-schema.sql b/swh/indexer/sql/30-swh-schema.sql
--- a/swh/indexer/sql/30-swh-schema.sql
+++ b/swh/indexer/sql/30-swh-schema.sql
@@ -14,7 +14,7 @@
);
insert into dbversion(version, release, description)
- values(115, now(), 'Work In Progress');
+ values(116, now(), 'Work In Progress');
-- Computing metadata on sha1's contents
-- a SHA1 checksum (not necessarily originating from Git)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jan 23, 2:38 AM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3221198
Attached To
D599: sql: Bump to new schema version
Event Timeline
Log In to Comment