public inbox for [email protected]
help / color / mirror / Atom feedFrom: Vincent Veyron <[email protected]>
To: [email protected]
Cc: Ron Johnson <[email protected]>
Cc: pgsql-general <[email protected]>
Subject: Re: psql: print values and return the COUNT(*) value to bash?
Date: Mon, 29 Dec 2025 17:40:23 +0100
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <CANzqJaBX-SZZcHn71xgqtSKx6ekZGdHPSgCmP2co5=-KDu4Q-Q@mail.gmail.com>
<[email protected]>
On Mon, 29 Dec 2025 11:11:58 +0100
hubert depesz lubaczewski <[email protected]> wrote:
Hi Ron, Hubert,
>
> Example:
>
> =$ cat z.sh
> #!/usr/bin/env bash
>
> table=pg_stat_all_tables
> field=last_autovacuum
>
> returned="$( psql -d depesz_explain -v "t=$table" -v "f=$field" -X << _SQL_
> select current_timestamp - min(:"f") as days_ago
> , min(:"f") as oldest_date
> , count(*) as cnt
> from :"t"
> _SQL_
> )"
> row_count="$( tail -n1 <<< "${returned}" | tr -cd 0-9 )"
> echo "Rowcount = $row_count"
> echo "Full output:"
> echo "${returned}"
>
> # vim: set filetype=bash shiftwidth=4 expandtab smarttab softtabstop=4 tabstop=4 textwidth=132 :
>
> =$ bash z.sh
> Rowcount = 1
> Full output:
> days_ago | oldest_date | cnt
> ------------------------+-------------------------------+-----
> 7 days 03:48:07.348247 | 2025-12-22 07:22:32.593814+01 | 212
> (1 row)
>
IIUC, Ron wants the 212 number?
Maybe use the -t switch, and 'cut' :
#!/usr/bin/env bash
table=pg_stat_all_tables
field=last_autovacuum
returned="$( psql -t -d vv -v "t=$table" -v "f=$field" -X << _SQL_
select current_timestamp - min(:"f") as days_ago
, min(:"f") as oldest_date
, count(*) as cnt
from :"t"
_SQL_
)"
row_count="$( tail -n1 <<< "${returned}" | cut -d "|" -f 3)"
echo "Rowcount = $row_count"
echo "Full output:"
echo "${returned}"
--
Bien à vous, Vincent Veyron
https://compta.libremen.com
Logiciel libre de comptabilité générale et analytique en partie double
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: psql: print values and return the COUNT(*) value to bash?
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox