Is it at all possible in Diesel to implement a query that has control flow, but which still operates in a single execution? For example, to implement something like:
-- if the following is true:
select exists (select id from source where field = :value)::bool;
-- do an insert
insert into target (a, b, c) select s.fk_id, :d, :e from source;
-- otherwise, issue an exception
raise Exception 'Condition is not satisfied';
In general, I would like to understand whether a control flow with multiple conditions, transactions and exceptions can also be implemented as a single Diesel query that runs in one database roundtrip, or is this a case where a stored procedure is necessary?
Thanks in advance!