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