On Sat, Dec 23, 2023 at 10:40 AM Japin Li <japi...@hotmail.com> wrote: > > > On Sat, 23 Dec 2023 at 08:32, Japin Li <japi...@hotmail.com> wrote: > > On Fri, 22 Dec 2023 at 23:30, Junwang Zhao <zhjw...@gmail.com> wrote: > >> On Fri, Dec 22, 2023 at 10:44 PM Japin Li <japi...@hotmail.com> wrote: > >>> > >>> > >>> On Fri, 22 Dec 2023 at 22:37, Junwang Zhao <zhjw...@gmail.com> wrote: > >>> > On Fri, Dec 22, 2023 at 10:25 PM Japin Li <japi...@hotmail.com> wrote: > >>> >> I try to set idle_in_transaction_session_timeout after begin > >>> >> transaction, > >>> >> it changes immediately, so I think transaction_timeout should also be > >>> >> take > >>> >> immediately. > >>> > > >>> > Ah, right, idle_in_transaction_session_timeout is set after the set > >>> > command finishes and before the backend send *ready for query* > >>> > to the client, so the value of the GUC is already set before > >>> > next command. > >>> > > >>> > >>> I mean, is it possible to set transaction_timeout before next comand? > >>> > >> Yeah, it's possible, set transaction_timeout in the when it first > >> goes into *idle in transaction* mode, see the attached files. > >> > > > > Thanks for updating the patch, LGTM. > > Sorry for the noise! > > Read the previous threads, I find why the author enable transaction_timeout > in start_xact_command(). > > The v15 patch cannot handle COMMIT AND CHAIN, see [1]. For example:
I didn't read the previous threads, sorry for that, let's stick to v14. > > SET transaction_timeout TO '2s'; BEGIN; SELECT 1, pg_sleep(1); COMMIT AND > CHAIN; SELECT 2, pg_sleep(1); COMMIT; > > The transaction_timeout do not reset when executing COMMIT AND CHAIN. > > [1] > https://www.postgresql.org/message-id/a906dea1-76a1-4f26-76c5-a7efad3ef5b8%40oss.nttdata.com > > -- > Regrads, > Japin Li > ChengDu WenWu Information Technology Co., Ltd. -- Regards Junwang Zhao