Re: raw output from copy
От | Pavel Stehule |
---|---|
Тема | Re: raw output from copy |
Дата | |
Msg-id | CAFj8pRADj=iCnvw4ztyxK4zf9Ym_ETG13CMDOambGBL8TBZpCg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: raw output from copy (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: raw output from copy
|
Список | pgsql-hackers |
Hi
2016-04-05 10:45 GMT+02:00 Pavel Stehule <pavel.stehule@gmail.com>:
create table avatars(id serial, picture bytea);copy (select xmlelement(name foo, 'hello')) to stdout (format raw_binary, encoding 'latin2');Some examples of expected usage:Now both directions (input/output) working wellThe RAW with text formats means unescaped data, but with correct encoding - input/output is realised with input/output function. RAW binary means content produced/received by sending/received functions.Hihere is cleaned/finished previous implementation of RAW_TEXT/RAW_BINARY formats for COPY statements.\copy avatars(picture) from ~/images/foo.jpg (format raw_binary);select lastval();create table doc(id serial, txt text);\copy doc(txt) from ~/files/aaa.txt (format raw_text, encoding 'latin2');select lastval();RegardsPavel
I am sending fresh version of COPY RAW patch.
There is new regress client test requested by Tom.
Note: I though about another solution based on binary parameters and binary result support in psql. Somelike:
INSERT INTO foo(a) VALUES($1)
\gpush filename
SELECT a FROM foo
\gpop filename
but, it is less intuitive, and doesn't work with stdin/stdout - so it is significant week against COPY based solution for scripting from shell. More \g***** solution is still possible if will be requested in future.
Regards
Pavel
[pavel@nemesis ~]$ cat avatar.gif | psql -Xq -At -c "copy xx(b) from stdin (format raw_text)" -c "select lastval()" postgres
313
[pavel@nemesis ~]$ cat avatar.gif | psql -Xq -At -c "copy xx(b) from stdin (format raw_text)" -c "select lastval()" postgres
313
Вложения
В списке pgsql-hackers по дате отправления: