Re: Bug in triggers - Mailing list pgsql-bugs

From Robert Haas
Subject Re: Bug in triggers
Date
Msg-id 603c8f071003090632g340ac949v796e70c702387b60@mail.gmail.com
Whole thread Raw
In response to Re: Bug in triggers  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Bug in triggers  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On Sun, Mar 7, 2010 at 12:08 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Fri, Mar 5, 2010 at 5:32 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> It's arguably a bug, but since we lack consensus on whether NULL and
>>> ROW(NULL,NULL,...) are the same thing, it's difficult to make a
>>> bulletproof case either way.
>
>> Have we or can we somehow document why this happens?
>
> The reason it happens is that the assignment target is a "row" variable,
> meaning that it doesn't have concrete existence as a tuple but is just
> an alias for a list of scalar variables. =A0So there is no way for it to
> represent an atomic NULL; setting each of the individual scalars to NULL
> is possible but the result acts more like ROW(NULL,NULL,...).
>
> I'm not sure about documenting that. =A0It seems like an implementation
> detail. =A0If we had consensus that the two cases either should or should
> not be distinguishable, we could work towards making that happen; but
> lacking such consensus I'm hesitant to touch it at all.

What seems odd to me is that NEW is apparently some other kind of
thing that is not the same kind of thing as the row variable.

...Robert

pgsql-bugs by date:

Previous
From: Andrea Suisani
Date:
Subject: duplicate key violates unique contraint on pg_type_typname_nsp_index
Next
From: Tom Lane
Date:
Subject: Re: Bug in triggers