Разница между statementtimeout и locktimeout в PostgreSQL заключается в том, что первый параметр ограничивает общее время выполнения оператора, а второй — время ожидания блокировки. 5
statement_timeout устанавливает максимальное время выполнения одного запроса. 14 Если запрос превышает этот лимит, PostgreSQL автоматически прекращает его выполнение и возвращает ошибку. 14 Если в запросе несколько операторов SQL, то ограничение применяется к каждому из них отдельно. 13
locktimeout контролирует, как долго транзакция будет ждать получения блокировки объекта базы данных, такого как таблица или строка, перед тем как отказаться от ожидания и вернуть ошибку. 14 В отличие от statementtimeout, этот параметр может срабатывать только во время ожидания блокировки. 3
Таким образом, statementtimeout фокусируется на общем времени выполнения оператора, а locktimeout — на времени ожидания блокировки.