Sam Mason wrote:
> On Mon, Sep 14, 2009 at 10:54:07AM -0500, Kevin Grittner wrote:
> > Sam Mason <sam@samason.me.uk> wrote:
> > > the deeper problem seems to be that the table was created as:
> > >
> > > create table test (a tstdom);
> > >
> > > and not as:
> > >
> > > create table test (a tstdom not null);
> >
> > Given that tstdom is declared as NOT NULL, is this difference
> > considered a *feature* or is it an implementation quirk?
>
> That's why I pointed it out!
>
> Based on my reading of the SQL spec (and reading about Codd's
> descriptions of domains) I'd say it was a bug/implementation quirk.
Do we need a TODO for this item? Also, I see this odd behavior even
without domains:
test=> CREATE TYPE xx AS (x INT);
CREATE TYPE
test=> CREATE TABLE test4(col1 xx NOT NULL);
CREATE TABLE
test=> INSERT INTO test4 VALUES (ROW(NULL));
INSERT 0 1
test=> SELECT * FROM test4 WHERE col1 IS NULL;
col1
------
()
(1 row)
Here I am illustrating that NOT NULL and IS NULL have different ideas of
what a NULL is? That seems odd too.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +