Re: COPY WITH CSV FORCE QUOTE *

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: Itagaki Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>, Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: COPY WITH CSV FORCE QUOTE *
Date: 2009-07-16 19:26:26
Message-ID: 4A5F7EE2.5000704@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Josh Berkus wrote:
> Andrew,
>
>> FORCE NOT NULL is in any case a fairly blunt instrument - it doesn't
>> work for a column of any type that doesn't accept an empty string as
>> valid input, such as numeric types.
>
> Con: this allows COPY to produce output which cannot be reloaded into
> PostgreSQL.
>
> Pro: there is a lot of extremely broken external software which
> expects "nulls" to be expressed as "". This improves compatiblity
> with them.
>

FORCE NOT NULL is only valid when we import data, not when we export
data, so what other programs expect to receive is irrelevant to any
argument about FORCE NOT NULL.

AFAICT on a brief look at the patch, it doesn't affect the quoting of
nulls on export, it just allows * as an alias for all columns for FORCE
QUOTE (as well as FORCE NOT NULL). But FORCE QUOTE has never forced
quoting of null values, only non-null values. We have never quoted null
values, and I'm fairly resistant to any suggestion that we should.

As for importing data from programs that produce all values in quotes
including null/missing values (your pro case above), arguably what we
need is another flag that would turn an empty string into a null.

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2009-07-16 19:33:53 Re: pg_stat_activity.application_name
Previous Message David E. Wheeler 2009-07-16 19:13:54 Re: navigation menu for documents