Subject: Re: Better way to process records in bash?

From: Ron Johnson <[email-masked]>
Date: Thu, 12 Sep 2024 15:43:59 -0400

On Thu, Sep 12, 2024 at 3:30 PM Christoph Moench-Tegeder <[email-masked]>
wrote:

> ## Ron Johnson ([email-masked]):
>
> > 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".
>
> Use python, or any other sane language, and don't do bash in python.
> Anything non-trivial is unreasonably hard to get really right when
> using shell.
>
> Take this example (even when allowing some fuzz with the variables):
> > 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;")
>
> What happens when f3
>  a) is NULL?
>  b) contains a '|' character?
>  c) contains spaces? (this one depends on how exactly you're handling
>     the shell variables).
> This might be fine if your data is only NOT NULL numbers, but that's
> already quite a limitation on your data.
>

Good points.  Shouldn't be relevant in my situation, but
defensive programming never hurts.

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

---

From: Thiemo Kellner <[email-masked]>
Date: Fri, 13 Sep 2024 02:55:48 +0200 (GMT+02:00)

You maybe even could use plpythonu.