Обсуждение: COPY x FROM STDIN escape handlers

Поиск
Список
Период
Сортировка

COPY x FROM STDIN escape handlers

От
Marc Lavergne
Дата:
Just to give a little background, using pgdump in "default" mode creates 
a dump file that includes inline newlines and tabs. The solution is to 
use the -Fc option  but it's a little late for that if all one has is a 
"default" dump file. I was hoping to simply run a conversion on the file 
to create an "escaped" version of the file, but none of the traditional 
escape methods appear to work (ie. \n, \010, 0x10, etc).

The code errors out in CopyReadNewline() but it's the result of a call 
from CopyFrom(). From what I can see, there is no escape handler in the 
CopyFrom function. So, should this be considered an enhancement or is 
there an underlying reason why it isn't there? If it's an enhancement, 
I'll patch it and submit it but I *really* don't want to end up with a 
non-standard version of PostgreSQL!

Thanks in advance!

Marc L.



Re: COPY x FROM STDIN escape handlers

От
Tom Lane
Дата:
Marc Lavergne <mlavergne-pub@richlava.com> writes:
> Just to give a little background, using pgdump in "default" mode creates 
> a dump file that includes inline newlines and tabs.

How old a PG release are you using?  COPY has quoted special characters
properly for a long time.
        regards, tom lane


Re: COPY x FROM STDIN escape handlers

От
Marc Lavergne
Дата:
I see the problem now. It was my file parser that was escaping the value 
then passing it to PQescapeString which resulted in \\n instead of \n. 
Guess I was on a wild goose chase. I guess PQescapeString() and 
PQputline() are mutally exclusive ... my bad!

Thanks,

Marc L.

Tom Lane wrote:
> Marc Lavergne <mlavergne-pub@richlava.com> writes:
> 
>>Just to give a little background, using pgdump in "default" mode creates 
>>a dump file that includes inline newlines and tabs.
> 
> 
> How old a PG release are you using?  COPY has quoted special characters
> properly for a long time.
> 
>             regards, tom lane
>