The backslash \
is the default escape character in the (default) text format of COPY
. The format you describe is recognized as (quoting the manual here)
backslash sequences are recognized by COPY FROM
...
\xdigits | Backslash x followed by one or two hex digits specifies the character with that numeric code
.. which seems to be just as intended.
To avoid this effect you could use the CSV format instead, where the backslash has no special meaning:
COPY tbl FROM '/path/to/file/log.sql' (FORMAT csv);
Be sure to read the manual to learn about additional differences.
Alternatively you could replace every \
with \\
in your file with a sed
script or something.
If the above doesn't solve your problem, please supply:
- PostgreSQL version
- Database encoding
- Demo data
- Definition of the table you
COPY
to
- The exact
COPY
invocation you used