Re: Better way to process records in bash? - Mailing list pgsql-general

From Florents Tselai
Subject Re: Better way to process records in bash?
Date
Msg-id CA+v5N41tqJDYxd3JVAz3NKxgPBp28RUnAgQ3h0M1bPNMLmtm+Q@mail.gmail.com
Whole thread Raw
In response to Better way to process records in bash?  (Ron Johnson <ronljohnsonjr@gmail.com>)
List pgsql-general




On Thu, Sep 12, 2024 at 6:08 PM Ron Johnson <ronljohnsonjr@gmail.com> wrote:
(This might be a bash question instead of a PG question, or it might be an A/B question.)

I need to process table records in a bash script.  Currently, I read them using a while loop and redirection.  The table isn't that big (30ish thousand rows), and performance is adequate, but am always looking for "better".

Here's the current code:
declare f1 f3 f8
while IFS='|' read f1 f3 f8; do
    something f8 f3 f1
done < <(psql -XAt -c "select f1, f3, f8 from some.table_name;")

--
Death to America, and butter sauce.
Iraq lobster!

Another approach I've found more enjoyable in some cases,
is using select to_jsonb(...) on the resultset, and then pipe this to jq.
This will preserve (more than) decent performance,
something you'll have to give up should you move to python for example.

You'll still have to use bash at some point,
but jq will be more expressive before that happens.
So instead of psql -> bash, you'll have to psql --> jq --> (bash).

pgsql-general by date:

Previous
From: Christoph Moench-Tegeder
Date:
Subject: Re: Better way to process records in bash?
Next
From: Ron Johnson
Date:
Subject: Re: Better way to process records in bash?