Thank you for the explanation. On Thu, 2006-09-28 at 12:06 -0400, Tom Lane wrote: > Gevik Babakhani <[EMAIL PROTECTED]> 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
---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match