On 30 October 2017 at 17:25, Ivan Kartyshov <i.kartys...@postgrespro.ru> wrote:
> It sounds reasonable. I can offer the following version.
> WAIT LSN lsn_number;
> WAIT LSN lsn_number TIMEOUT delay;
> WAIT LSN lsn_number INFINITE;
> WAIT LSN lsn_number NOWAIT;
> WAIT [token] wait_value [option];
> token - [LSN, TIME | TIMESTAMP | CSN | XID]
> option - [TIMEOUT | INFINITE | NOWAIT]
> Ready to listen to your suggestions.
OK, on review we want this feature in PG11
Many people think we will want to wait on a variety of things in the
future. Support for those things can come in the future when/if they
In PG11, I propose the following command, sticking mostly to Ants'
syntax, and allowing to wait for multiple events before it returns. It
doesn't hold snapshot and will not get cancelled by Hot Standby.
WAIT FOR event [, event ...] options
UNTIL TIMESTAMP timestamp
(we have both, so people don't need to do math, they can use whichever
We do not need "INFINITE" or "INFINITELY", obviously the default mode
for WAIT is to continue waiting until the thing you asked for happens.
I couldn't see the point of the NOWAIT option, was that a Zen joke?
WAIT can be issued on masters as well as standbys, no need to block that.
If you want this in PG11, please work on this now, including docs and
tap tests. Please submit before 1 March and I will shepherd this to
Thomas, I suggest we also do what Robert suggested elsewhere which was
to have an connection option that returns xid or lsn (or both) via the
protocol, so we can use that with the WAIT command and you can have
the overall causal consistency feature into PG11. I'll be reviewer for
that feature also if you submit.
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services