31 lines
983 B
MySQL
31 lines
983 B
MySQL
|
-- Deploy numerus:attach_to_collection to pg
|
||
|
-- requires: roles
|
||
|
-- requires: schema_numerus
|
||
|
-- requires: collection
|
||
|
-- requires: collection_attachment
|
||
|
|
||
|
begin;
|
||
|
|
||
|
set search_path to numerus, public;
|
||
|
|
||
|
create or replace function attach_to_collection(collection_slug uuid, original_filename text, mime_type text, content bytea) returns void as
|
||
|
$$
|
||
|
insert into collection_attachment (collection_id, original_filename, mime_type, content)
|
||
|
select collection_id, original_filename, mime_type, content
|
||
|
from collection
|
||
|
where slug = collection_slug
|
||
|
on conflict (collection_id) do update
|
||
|
set original_filename = excluded.original_filename
|
||
|
, mime_type = excluded.mime_type
|
||
|
, content = excluded.content
|
||
|
;
|
||
|
$$
|
||
|
language sql
|
||
|
;
|
||
|
|
||
|
revoke execute on function attach_to_collection(uuid, text, text, bytea) from public;
|
||
|
grant execute on function attach_to_collection(uuid, text, text, bytea) to invoicer;
|
||
|
grant execute on function attach_to_collection(uuid, text, text, bytea) to admin;
|
||
|
|
||
|
commit;
|