Neanderthelle Jones wrote: > We are getting a strange thing happening if the lo_export(attr, path) > destination is a fifo. > > First, in the normal case, there is output to the file but also > feedback to stdout (or somewhere, appearing on the VT screen) of the > number 1. > > ----------- > 1 > (1 row) > > Now, if the destination file is a fifo and a psql -c command is given > from the shell to lo_export(attr, '/path/to/fifo') we don't get that > feedback, but then a cat of the fifo to a normal file (cat fifo > > file) writes the BLOB content to the destination file but also sends > > ----------- > 1 > (1 row) > > (or just "1" with psql -t) to the console, apparently (not stderr). > > So it seems to us that the lo_export output can't be piped (via a > named pipe) to another process that reads from the pipe and expects > the valid BLOB contents. > > Beyond my understanding. What is happening here, and can the echoing > to the fifo be avoided? Ideas, anyone? > > (PostgreSQL 9.1.2, Linux 2.6.29.) It works fine here (9.1.3 on 2.4.21): $ mkfifo fifo && chmod 0777 fifo $ psql -U postgres test#> \lo_import '/path/to/some/bmp' lo_import 47248 test#> \q $ psql -U postgres -c "SELECT lo_export(47248, '/path/to/fifo')" >out 2>err & $ cat fifo >f $ file f f: PC bitmap data, Windows 3.x format, 173 x 115 x 8 $ cat out lo_export ----------- 1 (1 row) The file "err" is empty. Yours, Laurenz Albe -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general