COPY from file

Поиск
Список
Период
Сортировка
От Ole Gjerde
Тема COPY from file
Дата
Msg-id Pine.LNX.4.10.10002081031510.29757-100000@snowman.icebox.org
обсуждение исходный текст
Ответы Re: [HACKERS] COPY from file  (Peter Eisentraut <peter_e@gmx.net>)
Re: [HACKERS] COPY from file  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hey,
I have found what looks to be a bug in the COPY command.

This is current CVS as of monday at 7pm CST.

I have a tab delimited file(It's actually just a dump) that includes
some non-normal ascii characters, the one in question being y with 2 dots.
If the data has ANY of those in a char(or vchar) field the COPY finishes
successfully with no errors, but the table is empty.  If I edit
the data file and remove that y(there was only one), it works just fine.
So basically, COPY silently dropped that line on the floor and didn't say
anything about it.

Postgres was compiled like this: 
./configure --prefix=/home/postgres --with-maxbackends=128 ; make
and ran like this: postmaster -d 9 -o '-F'
on Linux 2.2.14 (Mandrake 7.0)

The above scenario happens when I just try to run on a one line data 
file(which I can provide if necessary).  If I try the big macdaddy file
with around 350 MB of data(and about 12 out of the 3-4 million rows has
that pesky y in it), more interesting things happen.

The backend log with -d 9 says: 
FATAL 1:  Socket command type (y with 2 dots goes here) unknown
NOTICE:  AbortTransaction and not in in-progress state   

And psql says this:psql:parts.dump:42: Backend message type 0x45 arrived while idle 
pqReadData() -- backend closed the channel unexpectedly.       This probably means the backend terminated abnormally
   before or while processing the request. 
 
PQsendQuery() -- There is no connection to the backend. 
PQsendQuery() -- There is no connection to the backend. 
PQsendQuery() -- There is no connection to the backend.
PQsendQuery() -- There is no connection to the backend. 
PQsendQuery() -- There is no connection to the backend. 
PQsendQuery() -- There is no connection to the backend. 
PQsendQuery() -- There is no connection to the backend. 
PQsendQuery() -- There is no connection to the backend.
PQsendQuery() -- There is no connection to the backend.                         

2 weird things here.  psql takes a good 30-40 seconds to notice that the
backend has died and I had another session(idle) of psql going, and that
backend died as well, but the postmaster was still running.

All of the data above will import just fine into 6.5.3(on the same
machine/os).

Thanks,
Ole Gjerde



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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] psql and libpq fixes
Следующее
От: Thomas Lockhart
Дата:
Сообщение: Re: [HACKERS] Deferred trigger queue