Как запускать PostgreSQL прямо из бэкапа без restore: FUSE и точечный флэшбэк через postgres_fdw
Несколько лет назад я трудился в проекте, где основной биллинг работал на Oracle. Однажды коллега захотел поправить тестовые начисления в таблице abon_charges и выполнил такой запрос:
UPDATE abon_charges SET amount = 0 WHERE service_id = 123 AND v_abon_id = v_abon_id;
На первый взгляд — ничего страшного. Но v_abon_id = v_abon_id истинно для любой строки. Oracle это не игнорирует. Условие становится:
WHERE service_id = 123 AND TRUE
Так запрос обнулил абсолютно все суммы для service_id=123 за десятки месяцев.