-- 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;