Hi
here is cleaned/finished previous implementation of RAW_TEXT/RAW_BINARY formats for COPY statements.
The 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.
Now both directions (input/output) working well
Some examples of expected usage:
copy (select xmlelement(name foo, 'hello')) to stdout (format raw_binary, encoding 'latin2');
create table avatars(id serial, picture bytea);
\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();
Regards
Pavel