mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
pg_waldump: Emit stats summary when interrupted by SIGINT
Previously, pg_waldump would not display its statistics summary if it got interrupted by SIGINT (or say a simple Ctrl+C). It gains with this commit a signal handler for SIGINT, trapping the signal to exit at the earliest convenience to allow a display of the stats summary before exiting. This makes the reports more interactive, similarly to strace -c. This new behavior makes the combination of the options --stats and --follow much more useful, so as the user will get a report for any invocation of pg_waldump in such a case. Information about the LSN range of the stats computed is added as a header to the report displayed. This implementation comes from a suggestion by Álvaro Herrera and myself, following a complaint by the author of this patch about --stats and --follow not being useful together originally. As documented, this is not supported on Windows, though its support would be possible by catching the terminal events associated to Ctrl+C, for example (this may require a more centralized implementation, as other tools could benefit from a common API). Author: Bharath Rupireddy Discussion: https://postgr.es/m/CALj2ACUUx3PcK2z9h0_m7vehreZAUbcmOky9WSEpe8TofhV=PQ@mail.gmail.com
This commit is contained in:
@ -202,6 +202,15 @@ PostgreSQL documentation
|
||||
full-page images) instead of individual records. Optionally
|
||||
generate statistics per-record instead of per-rmgr.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If <application>pg_waldump</application> is terminated by signal
|
||||
<systemitem>SIGINT</systemitem>
|
||||
(<keycombo action="simul"><keycap>Control</keycap><keycap>C</keycap></keycombo>,
|
||||
the summary of the statistics computed is displayed up to the
|
||||
termination point. This operation is not supported on
|
||||
<productname>Windows</productname>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
Reference in New Issue
Block a user