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