| From: | SATYANARAYANA NARLAPURAM <satyanarlapuram(at)gmail(dot)com> |
|---|---|
| To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
| Cc: | Peter Eisentraut <peter(at)eisentraut(dot)org>, Xuneng Zhou <xunengzhou(at)gmail(dot)com>, Kiran Kaki <itskkpg(at)gmail(dot)com>, Rithvika Devisetti <devisettirithvika(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: WAIT FOR NO_THROW option could use some documentation |
| Date: | 2026-09-04 00:26:22 |
| Message-ID: | CAHg+QDcZruKkzjaebtMoMQMd4LuG8sxtJPS=Hpx2Rxtddn+HOg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Sep 3, 2026 at 4:20 PM Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Thu, Sep 3, 2026 at 4:39 PM Peter Eisentraut <peter(at)eisentraut(dot)org>
> wrote:
> > On 03.09.26 17:21, SATYANARAYANA NARLAPURAM wrote:
> > > Maybe something along these lines - "NO_THROW option safely prevents
> the
> > > database
> > > from aborting an active transaction, allowing subsequent queries within
> > > the transaction
> > > to proceed without losing prior work"?
> >
> > Maybe that's what it is meant for, but that seems separate from the
> > status reporting mechanism. It could also send an error message to the
> > client but not abort the transaction on the server.
>
> I think sending an error without aborting the transaction on the
> server would invite too much confusion. But I also wonder if the
> documentation's claim that this option will just cause the server to
> categorically not throw errors can really be correct. In most places
> where we have an error-suppression facility of some kind, it's much
> more narrowly scoped.
>
Agree with Robert on this. I would say the error suppression is narrow here
as well.
When an incorrect mode or LSN is provided, it throws an error even with the
NO_THROW option.
postgres=# WAIT FOR LSN '0/306EEk0' WITH (TIMEOUT '100ms', NO_THROW, MODE
primary_flush);
ERROR: invalid input syntax for type pg_lsn: "0/306EEk0"
postgres=# WAIT FOR LSN '0/306EE0' WITH (TIMEOUT '100ms', NO_THROW, MODE
primary_flush2);
ERROR: unrecognized value for WAIT option "mode": "primary_flush2"
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Noah Misch | 2026-09-04 00:29:24 | Re: CREATE SCHEMA ... CREATE DOMAIN support |
| Previous Message | Bharath Rupireddy | 2026-09-04 00:23:00 | Re: Use WALReadFromBuffers in more places |