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

Re: CSV patch applied

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: CSV patch applied
Date: 2004-04-20 13:39:58
Message-ID: 4085282E.1040202@dunslane.net (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
Peter Eisentraut wrote:

>Bruce Momjian wrote:
>  
>
>>I have applied the attached patch that complete TODO item:
>>
>>        o -Allow dump/load of CSV format
>>
>>This adds new keywords to COPY and \copy:
>>
>>        CSV - enable CSV mode
>>        QUOTE - specify quote character
>>        ESCAPE - specify escape character
>>        FORCE - force quoting of specified columns
>>    
>>
>
>FORCE QUOTE
>
>  
>
>>        LITERAL - prevent NULL checks for specific columns
>>    
>>
>
>NO NULL CHECK
>
>  
>
>>If folks have better ideas for naming of those keywords, I am all
>>ears!
>>    
>>

Bruce and I tossed this around quite a bit.

The problem is that using QUOTE or NULL in these phrases might look 
confusing, e.g.
   COPY mytable TO 'mytable.csv' CSV QUOTE '"' FORCE QUOTE field1,field2;
   COPY mytable FROM 'mytable.csv' NULL '' CSV NO NULL CHECK field1,field2;

I also don't think NO NULL CHECK actually matches the use case for this 
very well (and I'm dubious about LITERAL too).  They both describe the 
actual behaviour, but not what you are trying to achieve. Essentially, 
this would be used when you have a field with a NOT NULL constraint, but 
the input CSV data stream has what would otherwise be considered nulls. 
(COPY itself will never produce such a CSV, as non-null values that 
resemble null are always quoted, but third party programs well might.) 
So an alternative might be FORCE NOT NULL, but for the previous 
consideration. Perhaps use of an optional preposition might make things 
slightly clearer, e.g.:

   COPY mytable TO 'mytable.csv' CSV QUOTE '"' FORCE QUOTE  IN 
field1,field2;
   COPY mytable FROM 'mytable.csv' NULL '' CSV FORCE NOT NULL IN 
field1,field2;

But it does start to look a little too much like COBOL :-).

So I'm interested to see if there are any other inspirations people have.

cheers

andrew

In response to

Responses

pgsql-hackers by date

Next:From: Andrew DunstanDate: 2004-04-20 13:57:10
Subject: Re: pg_encoding not needed anymore
Previous:From: Bruce MomjianDate: 2004-04-20 13:22:00
Subject: COPY CSV keywords

pgsql-patches by date

Next:From: Andrew DunstanDate: 2004-04-20 14:03:51
Subject: Re: COPY CSV keywords
Previous:From: Bruce MomjianDate: 2004-04-20 13:22:00
Subject: COPY CSV keywords

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