On Fri, Jan 05, 2007 at 08:45:51PM -0500, Tom Lane wrote:
> Ron Mayer <rm_pg@cheapcomplexdevices.com> writes:
> > Tom Lane wrote:
> >> Bruce Momjian <bruce@momjian.us> writes:
> >>> What value is allowing multiple queies via PQexec()
> >>
> >> The only argument I can think of is that it allows applications to be
> >> sloppy about parsing a SQL script into individual commands before they
> >> send it. (I think initdb may be guilty of exactly that BTW...) At the
> >> same time you could argue that such sloppiness is inherently a Bad Idea.
>
> > Doesn't it also avoid some network(?) overhead when you have
> > a large number of small inserts or updates?
>
> > I seem to recall a previous company where we had a major performance
> > by concatenating a bunch of updates with ";"s in between and sending
> > them to postgresql as a single command.
>
> These days you'd probably be better off using a multi-row VALUES() list
> if relevant. Also, if you really want to send multiple statements like
> that, there's a cleaner way to do it: use the extended query protocol
> and don't Sync or wait for a reply until you've sent them all.
>
> regards, tom lane
>
In shell scripts that do things in the database I often put >1 statement
in the line. Since it is the shell, I want quick results. Usually it
is an INSERT/UPDATE followed by a SELECT.
It would be very frustrating not to be able to send multiple commands
with one -c in psql.
--elein