Я создаю своего рода механизм очередей. Есть строки данных, которые необходимо обработать, и флаг состояния. Я использую пункт update.. returning
для управления им:
UPDATE stuff
SET computed = 'working'
WHERE id = (SELECT id from STUFF WHERE computed IS NULL LIMIT 1)
RETURNING *
Является ли вложенная часть выбора той же блокировкой, что и обновление, или у меня здесь состояние гонки? Если да, то должен ли внутренний выбор быть select for update
?