Re: [GENERAL] Quoted NULLs with COPY FROM (and pgAdmin export data

2006-01-25 Thread Richard Huxton

George Pavlov wrote:


This is actually turning into a bit of a pgAdmin issue: pgAdmin lets you
export data in a format that seems to be unimportable back into the same
table. If in the Export data to file form you check all columns
under Quoting you will get quotes around your numeric NULLs that you
will be unable to import back using COPY without resorting to
preprocessing of some sort (unless someone tells me how COPY can use
quoted NULLs).


Does sound like something for the pgadmin team.

--
  Richard Huxton
  Archonet Ltd

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [GENERAL] Quoted NULLs with COPY FROM

2006-01-24 Thread Richard Huxton

George Pavlov wrote:

Did you try NULL AS ''?


yes i did. that is the default and does not change the outcome (same
errors about trying to insert an empty string into a numeric field.


Well there's your problem. Quotes tend to imply a text field. Assuming 
you don't want to write a short Perl script to pre-process the file the 
simplest way would be to import into a temporary table with text columns 
rather than numeric, then copy from that into the real table (with CASE 
or two queries).


--
  Richard Huxton
  Archonet Ltd

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [GENERAL] Quoted NULLs with COPY FROM (and pgAdmin export data options)

2006-01-24 Thread George Pavlov
 Quotes tend to imply a text field. 

I think you meant to say quotes imply a non-null text field. And, yes,
I am quite aware of that. The point of the thread was to see if there is
any way of avoiding/overriding that assumption.

 Assuming 
 you don't want to write a short Perl script to pre-process 
 the file the 
 simplest way would be to import into a temporary table with 
 text columns 
 rather than numeric, then copy from that into the real table 
 (with CASE  or two queries).

Yes, both are valid alternatives. The point was to see if I could skip
those steps.

This is actually turning into a bit of a pgAdmin issue: pgAdmin lets you
export data in a format that seems to be unimportable back into the same
table. If in the Export data to file form you check all columns
under Quoting you will get quotes around your numeric NULLs that you
will be unable to import back using COPY without resorting to
preprocessing of some sort (unless someone tells me how COPY can use
quoted NULLs).

George

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


[GENERAL] Quoted NULLs with COPY FROM

2006-01-23 Thread George Pavlov
I need to load CSV files that have quotes in data fields that I want to
map to NULLs in the destination table. So if I see ...,,... that needs
to be mapped to a NULL (in an INTEGER field in this particular case).
Are there any COPY command options that can do that? It seems that PgSQL
COPY expects the NULL to be always unquoted. There is an option (FORCE
NOT NULL) for doing the opposite. How do I specify that the NULLs are
quoted? I am on 8.0.5.

George



---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [GENERAL] Quoted NULLs with COPY FROM

2006-01-23 Thread Bruce Momjian
George Pavlov wrote:
 I need to load CSV files that have quotes in data fields that I want to
 map to NULLs in the destination table. So if I see ...,,... that needs
 to be mapped to a NULL (in an INTEGER field in this particular case).
 Are there any COPY command options that can do that? It seems that PgSQL
 COPY expects the NULL to be always unquoted. There is an option (FORCE
 NOT NULL) for doing the opposite. How do I specify that the NULLs are
 quoted? I am on 8.0.5.

Did you try NULL AS ''?

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  pgman@candle.pha.pa.us   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [GENERAL] Quoted NULLs with COPY FROM

2006-01-23 Thread George Pavlov
  I need to load CSV files that have quotes in data fields 
  that I want to
  map to NULLs in the destination table. So if I see 
  ...,,... that needs
  to be mapped to a NULL (in an INTEGER field in this 
  particular case).
  Are there any COPY command options that can do that? It 
  seems that PgSQL
  COPY expects the NULL to be always unquoted. There is an 
  option (FORCE
  NOT NULL) for doing the opposite. How do I specify that the 
  NULLs are quoted? I am on 8.0.5.
 
 Did you try NULL AS ''?

yes i did. that is the default and does not change the outcome (same
errors about trying to insert an empty string into a numeric field.

---(end of broadcast)---
TIP 6: explain analyze is your friend