Skip site navigation (1) Skip section navigation (2)

[Fwd: Re: [pgsql-hackers-win32] Import from Linux to Windows]

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>,"Patches (PostgreSQL)" <pgsql-patches(at)postgresql(dot)org>
Subject: [Fwd: Re: [pgsql-hackers-win32] Import from Linux to Windows]
Date: 2004-08-13 12:22:26
Message-ID: 411CB282.1060206@dunslane.net (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
[redirecting]

I have abstracted this problem, and we definitely have a newline bug 
that has to be fixed, IMNSHO.

Attached are 2 scripts that are identical except that one has DOS-style 
line endings and one has Unix style line endings. The DOS-style just 
fails miserably with no warning. It's not related to Windows file-end 
munging - the problem is observable on Linux - psql doesn't correctly 
detect the end of copy input with "\." if it's followed by CRNL.

The attached patch appears to solve the problem. However, while it makes 
us conform to the first sentence below from the docs, it doesn't comply 
with the second. Not sure what to do about that. Maybe there's a better 
solution?

"COPY FROM can handle lines ending with newlines, carriage returns, or 
carriage return/newlines. To reduce the risk of error due to 
un-backslashed newlines or carriage returns that were meant as data, 
COPY FROM will complain if the line endings in the input are not all alike."

cheers

andrew


Tom Haddon wrote:

>Here's what I can share, as there's some sensitive stuff in others.
>
>This is just a dump from one of the databases. I was able to load it
>using the \i switch, but it has only populated data from the first
>table. Also, it kept prompting me to hit a key as the screen was
>scrolling. This doesn't seem normal to me. And I tried running it as a
>SQL statement from within PgAdmin3, and got:
>
>"ERROR:  syntax error at or near "1" at character 15030"
>
>The first "1" you see is where this error is.
>
>COPY backup_data (id, lu, ub, tape, contents, last_writter,
>times_written) FROM stdin;
>1	2004-07-13 09:37:14.78254	thaddon	DLT000005	Full
>Backup (including only 2004 filings) 6/9/04\r\n\r\nNow archived
>2004-06-09	6
>4	2004-07-13 09:40:57.876355	thaddon	DLT000009	Full
>Backup 7/12/04	2004-07-12	4
>3	2004-07-21 16:28:09.843069	thaddon	DLT000007	Full
>Backup 7/21/04\r\n\r\nC:\\Perforce\\*.* /SUBDIR \r\nD:\\backup\\*.*
>/SUBDIR \r\nDMTNJ1-SERVER\\insight_backup\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\equilar_ca\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\software\\*.* /SUBDIR /EXCLUDE
>\r\nHOTNSOUR\\sql_backup\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\06\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\07\\*.* /SUBDIR \r\nYODA\\qa\\*.*
>/SUBDIR \r\nMILLENIUM\\ExchangeBackup\\*.* /SUBDIR \r\n	2004-07-21
>14
>2	2004-07-22 13:27:01.657706	thaddon	DLT000006	Full
>Backup 7/22/04\r\n\r\nC:\\Perforce\\*.* /SUBDIR \r\nD:\\backup\\*.*
>/SUBDIR \r\nDMTNJ1-SERVER\\insight_backup\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\equilar_ca\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\software\\*.* /SUBDIR /EXCLUDE
>\r\nHOTNSOUR\\sql_backup\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\06\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\07\\*.* /SUBDIR \r\nYODA\\qa\\*.*
>/SUBDIR \r\nMILLENIUM\\ExchangeBackup\\*.* /SUBDIR \r\n	2004-07-22
>10
>5	2004-07-27 10:49:22.786997	thaddon	DLT000008
>Incremental backup since last full 7/21/04 last updated
>7/23/04\r\n\r\nWill include (as of 7/23/04):\r\n\r\nC:\\Perforce\\*.*
>/SUBDIR \r\nD:\\backup\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\insight_backup\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\equilar_ca\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\software\\*.* /SUBDIR /EXCLUDE
>\r\nHOTNSOUR\\sql_backup\\*.* /SUBDIR \r\nYODA\\qa\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\06\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\07\\*.* /SUBDIR
>\r\nMILLENIUM\\ExchangeBackup\\*.* /SUBDIR \r\n	2004-07-23	3
>6	2004-07-27 10:50:11.802647	thaddon	DLT000010
>Differential backup since 7/21/04\r\n\r\nC:\\Perforce\\*.* /SUBDIR
>\r\nD:\\backup\\*.* /SUBDIR \r\nDMTNJ1-SERVER\\insight_backup\\*.*
>/SUBDIR \r\nDMTNJ1-SERVER\\equilar_ca\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\*.* /SUBDIR
>\r\nDMTNJ1-SERVER\\dmt_media\\public\\software\\*.* /SUBDIR /EXCLUDE
>\r\nHOTNSOUR\\sql_backup\\*.* /SUBDIR \r\nYODA\\qa\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\06\\*.* /SUBDIR
>\r\nYODA\\sec_filings\\filings\\2004\\07\\*.* /SUBDIR
>\r\nMILLENIUM\\ExchangeBackup\\*.* /SUBDIR \r\n	2004-07-27	1
>\.
>
>Thanks, Tom
>
>-----Original Message-----
>From: Andrew Dunstan [mailto:andrew(at)dunslane(dot)net] 
>Sent: Thursday, August 12, 2004 8:40 AM
>To: Tom Haddon
>Cc: pgsql-hackers-win32(at)postgresql(dot)org
>Subject: Re: [pgsql-hackers-win32] Import from Linux to Windows
>
>
>
>
>Tom Haddon wrote:
>
>  
>
>>I don't think so. Did a search for it in vi and nothing. It doesn't 
>>give me an error, just exits. Last statement is "CREATE TABLE".
>>
>>Sorry, not very helpful...
>>
>> 
>>
>> 
>>
>>    
>>
>
>I think you'll need to let us look at the dump file to make any progress
>
>- otherwise we are just guessing in the dark.
>
>thanks
>
>andrew
>  
>

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster



Attachment: psql-copy.patch
Description: text/x-patch (556 bytes)
Attachment: nltest.sql
Description: text/x-sql (230 bytes)
Attachment: nltest-crnl.sql
Description: text/x-sql (230 bytes)

Responses

pgsql-hackers by date

Next:From: strkDate: 2004-08-13 12:30:57
Subject: Re: Dump Version
Previous:From: Philip WarnerDate: 2004-08-13 12:05:09
Subject: Re: Dump Version

pgsql-patches by date

Next:From: Andrew DunstanDate: 2004-08-13 12:44:14
Subject: Re: [Fwd: Re: [pgsql-hackers-win32] Import from Linux to Windows]
Previous:From: Gavin SherryDate: 2004-08-13 11:36:03
Subject: Re: ALTER INDEX

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group