Can statement_timeout emulated NOWAIT?
От | Luis P Caamano |
---|---|
Тема | Can statement_timeout emulated NOWAIT? |
Дата | |
Msg-id | DIEAJDKECNMGBBCLCGFFAEHPCGAA.lcaamano@mindspring.com обсуждение исходный текст |
Ответы |
Re: Can statement_timeout emulated NOWAIT?
Re: Can statement_timeout emulated NOWAIT? |
Список | pgsql-sql |
I've researched the recent discussions about statement_timeout and NOWAIT and I'd like to confirm my understanding of the situation before acting on it. Please let me know if the following statements are true: - LOCK TABLE ... NOWAIT has been checked in and will be available in 7.5 - SELECT ... FOR UPDATE NOWAIT is in the TODO list (among other NOWAIT commands) but it will also be available in 7.5 - Using "SET LOCAL statement_timeout=xxx" can be used before "SELECT ... FOR UPDATE" to emulate NOWAIT when the select issimple and involves a relatively small number of rows. That is, the following: BEGIN; SET LOCAL statement_timeout=3000; SELECT ... FOR UPDATE; -- (1 row) COMMIT; will be equivalent to: BEGIN; SELECT ... FOR UPDATE NOWAIT; COMMIT; - The NOWAIT feature will be able to handle select-for-updates that involve many rows better than statement_timeout becauseit will track timeouts on a row by row basis, which eliminates false positives. That is, if the statement_timeoutis too short for the select, it might fail before finishing the select instead of failing because of lockedrow. - The error raised by statement_timeout and NOWAIT will be the same. Basically, I'd like to write low level code that implements NOWAIT in the application using statement_timeout. Later on, 7.5, I'd be able to reimplement the low level functions using NOWAIT without having to change the higher level code. Your thoughts and comments are appreciated. Thanks Luis P Caamano Atlanta, GA, USA
В списке pgsql-sql по дате отправления: