Re: Bug in triggers - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Bug in triggers
Date
Msg-id 17572.1267981711@sss.pgh.pa.us
Whole thread Raw
In response to Re: Bug in triggers  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Bug in triggers  (Chris Travers <chris@metatrontech.com>)
Re: Bug in triggers  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-bugs
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.  So 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.  It seems like an implementation
detail.  If 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.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: BUG #5348: Postgres crashes with index on xpath_string
Next
From: Chris Travers
Date:
Subject: Re: Bug in triggers