Re: Separate the result of \watch for each query execution (psql) - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Separate the result of \watch for each query execution (psql)
Date
Msg-id CAFj8pRC-FQxda1esbEXqwX_3ucUbTEB-wYSawEeDV45upDbapw@mail.gmail.com
Whole thread Raw
In response to Re: Separate the result of \watch for each query execution (psql)  (Noboru Saito <noborusai@gmail.com>)
Responses Re: Separate the result of \watch for each query execution (psql)  (Noboru Saito <noborusai@gmail.com>)
List pgsql-hackers


pá 25. 2. 2022 v 5:23 odesílatel Noboru Saito <noborusai@gmail.com> napsal:
Hi,

Pavel Stehule <pavel.stehule@gmail.com>:
> > I strongly agree. It was a lot of work to find a workable solution for pspg. Special chars that starting result and maybe other, that ending result can significantly increase robustness and can reduce code. I think it can be better to use form feed at the end of form - like it is semantic of form feed. You know, at this moment, the result is complete. https://en.wikipedia.org/wiki/Page_break
>
> It's easier to print a form feed before the result, but it's okay at the end.
>
> > I don't think using it by default can be the best. Lot of people don't use specialized pagers, but it can be set by \pset. Form feed should be used on end
> >
> > \pset formfeed [on, off]
>
> I think it's a good idea to be able to switch with \pset.

I have created a patch that allows you to turn it on and off in \pset.
The attached patch adds the following features.


Formfeed can be turned on with the command line option or \pset.
Formfeed (\f\n) is output after the query execution result by \watch.

I think the considerations are as follows.

* Is formfeed output after the result, not before?

We are talking about the first iteration. In the second and other iteration this question has no sense. You know the starting point. You don't know the endpoint. So I think so using formfeed on the end is good idea.

* Is the formfeed output only "\f\n"?

yes
 
* Is the formfeed output only executed by \watch?

This is a good question. I think the implementation for \watch is a good start. But it can help with normal results too. In pspg it can be very useful for incremental load or for streaming mode. But if it will be used everywhere, then it should be used just for some specified pagers.

 
* Is the name "formfeed" appropriate?

If it will do work of formfeed, then the formfeed is good name.
 

If the formfeed is output before the query result,
it will be better if the screen is reset when the formfeed is read.

I think, so you propose another feature - reset terminal sequence - it can be a good idea. Not for pspg, but generally, why not.

Regards

Pavel
 

Furthermore, if the terminal clear string can be set instead of the
formfeed character,
the \watch output can be fixedly displayed without a pager.

(I noticed that if I set it in the title, it would behave similarly in
the current version.
    # \C '\033[2J;\033[0;0H'
    # SELECT now();\watch 1
)

Also, it may be good to output formfeed when outputting a file with
`\o result.txt`
other than \watch.

pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: BufferAlloc: don't take two simultaneous locks
Next
From: Peter Geoghegan
Date:
Subject: Re: Removing more vacuumlazy.c special cases, relfrozenxid optimizations