From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | Sam Mason <sam(at)samason(dot)me(dot)uk>, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #5053: domain constraints still leak |
Date: | 2009-09-21 17:22:29 |
Message-ID: | 603c8f070909211022k9126186ifac452e8c95345fb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On Mon, Sep 21, 2009 at 12:31 PM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> Sam Mason wrote:
>> On Mon, Sep 14, 2009 at 10:54:07AM -0500, Kevin Grittner wrote:
>> > Sam Mason <sam(at)samason(dot)me(dot)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.
I think what you're demonstrating is that there is a difference
between a NULL, and a row consisting of a single NULL. We've had some
dispute (on this thread) about whether that ought to be the case, but
this is certainly a lot less weird and more debatable than the domain
example, at least IMO.
...Robert
From | Date | Subject | |
---|---|---|---|
Next Message | David Fetter | 2009-09-21 18:17:13 | Re: BUG #5066: plperl issues with perl_destruct() and END blocks |
Previous Message | Robert Haas | 2009-09-21 17:19:59 | Re: BUG #5066: plperl issues with perl_destruct() and END blocks |
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2009-09-21 17:32:27 | Re: SELECT ... FOR UPDATE [WAIT integer | NOWAIT] for 8.5 |
Previous Message | Bruce Momjian | 2009-09-21 16:31:31 | Re: BUG #5053: domain constraints still leak |