Thank you for the explanation.
On Thu, 2006-09-28 at 12:06 -0400, Tom Lane wrote:
> Gevik Babakhani <pgdev@xs4all.nl> writes:
> > Does this have anything to do with ExecEvalWholeRowVar?
>
> Yeah, the construct
>
> >> Seq Scan on int8_tbl x (cost=0.00..1.05 rows=1 width=16)
> >> Filter: (x.* IS NULL)
>
> is really ExecEvalNullTest applied to the result of ExecEvalWholeRowVar.
>
> If we simply push makeRowNullTest() to later in the parser, this case
> will work as expected, but there is still the issue of IS [NOT] NULL
> applied to rowtype values that are not coming from ROW() constructs,
> such as the result of a rowtype-returning function. Likewise, null
> tests on arrays really would have to be handled in the executor to
> work per spec --- we can hardly break them down into scalar isnull
> tests at parse time, which is what makeRowNullTest() is trying to do.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>
--
Regards,
Gevik Babakhani
http://www.postgresql.nl
http://www.truesoftware.nl