Thread: [GENERAL] Any thoughts on making a psql meta-command "hide (or show alt text)if no results"?

Hey all, looking for thoughts on a feature request:

I run quite a few queries, using psql, that are intended for exceptional situations.  When there are no results, which is expected, I still get the table header and basic frame showing up in the output.  The option I'd like is to be able to suppress the output of the empty table (and header if there is one) or possibly substitute the empty table with user-supplied text.

Thinking something that is used like \g

SELECT * FROM (VALUES (1)) vals (v) WHERE v = 0 \ghideifempty

[SQL] \galtifempty 'No values matching 0 in vals'

The names are descriptive, not suggestions...

David J.


On Tue, Aug 8, 2017 at 9:16 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
Hey all, looking for thoughts on a feature request:

I run quite a few queries, using psql, that are intended for exceptional situations.  When there are no results, which is expected, I still get the table header and basic frame showing up in the output.  The option I'd like is to be able to suppress the output of the empty table (and header if there is one) or possibly substitute the empty table with user-supplied text.

Thinking something that is used like \g

SELECT * FROM (VALUES (1)) vals (v) WHERE v = 0 \ghideifempty

[SQL] \galtifempty 'No values matching 0 in vals'

The names are descriptive, not suggestions...

David J.

>The option I'd like is to be able to suppress the output of the empty table (and header if there is one)
Have you looked at the TUPLES ONLY option?

-t
--tuples-only

Turn off printing of column names and result row count footers, etc. This is equivalent to the \t command.

https://www.postgresql.org/docs/9.4/static/app-psql.html

--
Melvin Davidson
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

On Tue, Aug 8, 2017 at 6:25 PM, Melvin Davidson <melvin6925@gmail.com> wrote:
​H​
ave you looked at the TUPLES ONLY option?

-t
--tuples-only

Turn off printing of column names and result row count footers, etc. This is equivalent to the \t command.

https://www.postgresql.org/docs/9.4/static/app-psql.html


​Hadn't pondered it for this usage.  Now that I have I'd say having the column names be visible for those few times the query returns results would be nice.​  So, close but not quite.

I eventually saw, in one of the three descriptions for "tuples only" where the caption is explicitly noted as being hidden in this mode. In my proposed feature the caption, like the table it is attached to, would be visible only conditionally.

David J.