BUG #2114: (patch) COPY FROM ... end of copy marker corrupt

Поиск
Список
Период
Сортировка
От Ben Gould
Тема BUG #2114: (patch) COPY FROM ... end of copy marker corrupt
Дата
Msg-id 20051214164522.32DF0F0B12@svr2.postgresql.org
обсуждение исходный текст
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      2114
Logged by:          Ben Gould
Email address:      ben.gould@free.fr
PostgreSQL version: 8.1.0
Operating system:   Mac OS X 10.4.3
Description:        (patch) COPY FROM ... end of copy marker corrupt
Details:

With a table like:

CREATE TABLE test_table (
foo text,
bar text,
baz text
);

Using this format for COPY FROM:

COPY test_table FROM STDIN WITH CSV HEADER DELIMITER AS ',' NULL AS 'NULL'
QUOTE AS '\"' ESCAPE AS '\"'

Where the file was generated via:

COPY test_table TO STDOUT WITH CSV HEADER DELIMITER AS ',' NULL AS 'NULL'
QUOTE AS '\"' ESCAPE AS '\"' FORCE QUOTE foo, bar, baz;

I needed this patch:

<<<
--- postgresql-8.1.0.original/src/backend/commands/copy.c       2005-12-13
13:18:16.000000000 +0100
+++ postgresql-8.1.0/src/backend/commands/copy.c        2005-12-13
13:28:28.000000000 +0100
@@ -2531,7 +2531,7 @@
                /*
                 * In CSV mode, we only recognize \. at start of line
                 */
-               if (c == '\\' && cstate->line_buf.len == 0)
+               if (c == '\\' && !in_quote && cstate->line_buf.len == 0)
                {
                        char            c2;
>>>

Because of this error message:

pg_endcopy warning: ERROR:  end-of-copy marker corrupt

(We have quoted strings containing things like ..\..\.. in the CSV file
which broke the copy from.)

I was using DBD::Pg as the client library.

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "David S. Edwards"
Дата:
Сообщение: BUG #2115: If we CLOSE a Closed Cursor subsequent OPENs fail.
Следующее
От: Michael Fuhr
Дата:
Сообщение: Re: BUG #2115: If we CLOSE a Closed Cursor subsequent OPENs fail.