Skip site navigation (1) Skip section navigation (2)

Re: Row IS NULL question

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Gevik Babakhani <pgdev(at)xs4all(dot)nl>
Cc: Teodor Sigaev <teodor(at)sigaev(dot)ru>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Row IS NULL question
Date: 2006-09-28 16:06:49
Message-ID: 26322.1159459609@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
Gevik Babakhani <pgdev(at)xs4all(dot)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

In response to

Responses

pgsql-hackers by date

Next:From: Jim C. NasbyDate: 2006-09-28 16:08:36
Subject: Another idea for dealing with cmin/cmax
Previous:From: Luke LonerganDate: 2006-09-28 16:00:30
Subject: Re: New version of money type

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group