Иногда от СУБД требуется странное - откатить все изменения текущей транзакции, кроме некоторых. Обычно это используется для аудита или логов и реализуется с помощью механизма автономных транзакций. Этого механизма в PostgreSQL до сих пор не было, а пользователи обходили проблему с помощью dblink и pg_background. Мы решили исправить это, добавив в PostgreSQL возможность начинать автономную транзакцию в ходе текущей и применять или откатывать её независимо.
В докладе рассмотрена идея, реализация, способы применения и дальнейший путь развития PostgreSQL в этом направлении.