diff --git a/sql/upgrades/129.sql b/sql/upgrades/129.sql new file mode 100644 --- /dev/null +++ b/sql/upgrades/129.sql @@ -0,0 +1,28 @@ +-- SWH DB schema upgrade +-- from_version: 128 +-- to_version: 129 +-- description: Update origin trigger to provide the full origin + +insert into dbversion(version, release, description) + values(129, now(), 'Work In Progress'); + +-- Asynchronous notification of new origin insertions +create or replace function notify_new_origin() + returns trigger + language plpgsql +as $$ + begin + perform pg_notify('new_origin', json_build_object( + 'id', new.id::text, + 'url', new.url::text, + 'type', new.type::text + )::text); + return null; + end; +$$; + +drop trigger notify_new_origin on origin; +create trigger notify_new_origin + after insert on origin + for each row + execute procedure notify_new_origin(); diff --git a/swh/storage/sql/30-swh-schema.sql b/swh/storage/sql/30-swh-schema.sql --- a/swh/storage/sql/30-swh-schema.sql +++ b/swh/storage/sql/30-swh-schema.sql @@ -12,7 +12,7 @@ -- latest schema version insert into dbversion(version, release, description) - values(128, now(), 'Work In Progress'); + values(129, now(), 'Work In Progress'); -- a SHA1 checksum create domain sha1 as bytea check (length(value) = 20); diff --git a/swh/storage/sql/70-swh-triggers.sql b/swh/storage/sql/70-swh-triggers.sql --- a/swh/storage/sql/70-swh-triggers.sql +++ b/swh/storage/sql/70-swh-triggers.sql @@ -26,7 +26,11 @@ language plpgsql as $$ begin - perform pg_notify('new_origin', json_build_object('id', new.id)::text); + perform pg_notify('new_origin', json_build_object( + 'id', new.id::text, + 'url', new.url::text, + 'type', new.type::text + )::text); return null; end; $$;