Re: psql client quits after 1st command - Mailing list pgsql-general

From Douglas McNaught
Subject Re: psql client quits after 1st command
Date
Msg-id 87zm6vochi.fsf@suzuka.mcnaught.org
Whole thread Raw
In response to psql client quits after 1st command  (Vincenzo Romano <vincenzo.romano@gmail.com>)
Responses Re: psql client quits after 1st command  (Vincenzo Romano <vincenzo.romano@gmail.com>)
List pgsql-general
Vincenzo Romano <vincenzo.romano@gmail.com> writes:

> Hi all.
>
> Under Linux I'm trying to communicate to an instance of the psql client
> running in the background through a couple of named pipes.
> I'd like to do something like this:
>
> $ mkfifo /tmp/pg_ipipe /tmp/pg_opipe
> $ psql -d testdb -U testuser < /tmp/pg_ipipe > /tmp/pg_opipe &
> ...
> $ echo "\t" > /tmp/pg_ipipe
> $ echo "select count(*) from test_table;" > /tmp/pg_ipipe
> $ read COUNT < /tmp/pg_opipe
>
> The psql client connects to the DB abd waits for the first commad coming from
> the "pg_ipipe" and executes it. Fine.
> The problem is that it quits soon after instead of waiting for the second (and
> any subsequent) command, as we all see in the usual command line usage.
> I've also tried to add a "--file -" with no luck.
> It seems that when the psql is getting the input from a named pipe acts as if
> the "--command" option were active.
>
> I'm sure I'm missing something. But don't know what.
> Is there any hint?

psql gets an EOF on the named pipe when the first shell command
exits.  You need to batch all your commands and send them in one shell
command, so it keeps the pipe open until it's done.

-Doug

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_dump, serial
Next
From: Scott Ribe
Date:
Subject: Re: PostgreSQL primary (sequence) key issue (Ruby/Rails)