Vincenzo Romano <[EMAIL PROTECTED]> 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

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to