Re: [INTERFACES] copy command & null datetime - Mailing list pgsql-interfaces

From Tom Lane
Subject Re: [INTERFACES] copy command & null datetime
Date
Msg-id 6304.920905096@sss.pgh.pa.us
Whole thread Raw
In response to Re: [INTERFACES] copy command & null datetime  ("Ken J. Wright" <ken@ori-ind.com>)
List pgsql-interfaces
"Ken J. Wright" <ken@ori-ind.com> writes:
> But in the specific case of a datetime column, wouldn't you think a null
> would be reasonable rather than a failed load? After all, a date can't be
> empty, only null.

Well ... if you go down that path, you find yourself trying to remember
which datatypes accept an empty string as meaning NULL and which don't.
I don't much like that idea; NULL is a type-independent concept and
ought to have a type-independent representation.

An example where the behavior would be far from obvious is char(n)
(not varchar, but the fixed-length string type).  A zero-length input
wouldn't be a valid value for n>0, so it could be taken to mean NULL.
On the other hand, char(n) has historically accepted inputs of length
< n and blank-padded them, so converting empty input to n spaces would
also be expected behavior.

Of course \N has its own problems in this respect: unless you know about
backslash-escaping rules, it's not obvious that \N is not a legal data
value for a string.  But we need an escaping mechanism anyway, in order
to deal with newlines and tabs in text strings, so there has to be some
ugliness of this kind.

            regards, tom lane

pgsql-interfaces by date:

Previous
From: Byron Nikolaidis
Date:
Subject: Re: [INTERFACES] row count
Next
From: Tom Lane
Date:
Subject: Re: [INTERFACES] Counting updates with libpq