Re: BUG #12320: json parsing with embedded double quotes - Mailing list pgsql-bugs

From Francisco Olarte
Subject Re: BUG #12320: json parsing with embedded double quotes
Date
Msg-id CA+bJJbz0-KdKeBZ9JzyzJDcVkZ5bHimH-TfSsz4hjGQNpm65Fw@mail.gmail.com
Whole thread Raw
In response to BUG #12320: json parsing with embedded double quotes  (postgres@bt-r.com)
Responses Re: BUG #12320: json parsing with embedded double quotes
List pgsql-bugs
Hi Aaron:
....

>
> user:\"root\""}}}}},"from":0,"size":20,"timeout":10000,"sort":{"timestamp":{"order":"

.....

Copy from does it's own round of backslash scaping, if you look at

http://www.postgresql.org/docs/9.4/static/sql-copy.html

The third paragraph under File formats / text format reads:

Backslash characters (\) can be used in the COPY data to quote data
characters that might otherwise be taken as row or column delimiters. In
particular, the following characters must be preceded by a backslash if
they appear as part of a column value: backslash itself, newline, carriage
return, and the current delimiter character.

As you want the backslash as part of the data you need to double it in the
file, otherwise you'll fall into the later case:
.....Any other backslashed character that is not mentioned in the above
table will be taken to represent itself

And the backslash will get eaten and the json parser will fail. It's the
same problem that you get when you try to put windows paths or perl type
regular expresions inside doube quoted C/Java/perl/shell/and_many_more
Strings.

If your table is always a single column and you cannot edit the file, you
can always try to change the scape character.

Regards.
    Francisco Olarte.

pgsql-bugs by date:

Previous
From: David G Johnston
Date:
Subject: Re: BUG #12319: NPE in JDBC driver when using PgCopyOutputStream
Next
From: zhangyingyun001@gmail.com
Date:
Subject: BUG #12326: I think maybe postgresql has a problem about timezone.