Re: Strict Set Returning Functions

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Strict Set Returning Functions
Date: 2011-06-15 19:29:57
Message-ID: BANLkTikY=b1VdpgHRtFhctv9zkKaiDJqXg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jun 15, 2011 at 8:05 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Simon Riggs <simon(at)2ndQuadrant(dot)com> writes:
>> STRICT functions return NULL if any of their inputs are NULL according
>> to the manual, so that they need not be executed at all.
>
>> Unless it is a Set Returning Function, in which case a NULL input is
>> not reduced nor does it to appear to be handled as a special case in
>> the executor function scan code.
>
>> So a function that is both STRICT and SET RETURNING will return rows.
>
> Really?  The case behaves as expected for me.

Seems that's the wrong question. Let me return to why I raised this:

Why does evaluate_function() specifically avoid returning NULL for a
set returning function?
It could easily do the NULL test first, so it was applied to all
function types. That seems strange.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2011-06-15 19:59:25 Re: pg_upgrade using appname to lock out other users
Previous Message Alvaro Herrera 2011-06-15 19:21:09 Re: creating CHECK constraints as NOT VALID