in PostgreSQL 9.5 does RAISE EXCEPTION reliably rollback all previous commands in a stored function?
I have a stored function (the code is at the bottom), which takes a JSON array of objects as arguments.
First it prepares some data and then loops through the JSON array and upserts the objects into a table.
However if any of the objects fails an authenticity check (using md5 + some secret string) - I would like to rollback everything.
Since I can not use START TRANSACTION in a stored function, I wonder if another loop should be added at the very beginning - or if I can just use the one I already have at the end.
transaction is started implicitly when you start SQL statement.