Re: odd behavior/possible bug - Mailing list pgsql-hackers

From Joe Conway
Subject Re: odd behavior/possible bug
Date
Msg-id 3F2045FF.4040804@joeconway.com
Whole thread Raw
In response to Re: odd behavior/possible bug  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: odd behavior/possible bug  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: odd behavior/possible bug  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
List pgsql-hackers
Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>>So far so good. But look at this one:
>>regression=# select dwarray(null,null);
>>ERROR:  cannot determine ANYARRAY/ANYELEMENT type because input is UNKNOWN
> 
> That seems correct to me.  What would you expect to happen?  There's no
> type we could assign as the function's actual return type.

I see your point, but mine was that in this case I'd like a NULL 
returned and I don't really care about the type. ISTM that NULL should 
be able to morph into any type it needs to.


>>This call makes it all the way to ExecEvalArray(), which means that 
>>dwarray() is getting evaluated even though it is declared STRICT and has 
>>been called with NULL inputs. That shouldn't happen, should it?
> 
> I think what is happening is that the SQL function is getting inlined,
> probably because the inlining logic thinks ARRAY[] is strict and so
> there'd be no change in semantics.
> 
> We could probably hack the inlining logic to prevent it from inlining
> the function in this scenario, but I wonder whether this doesn't say
> that ExecEvalArray is behaving inconsistently.  In other operations, any
> NULL in means NULL out.  Shouldn't it simply quietly return a NULL array
> if one of the supplied elements is NULL?


That probably makes good sense, at least until we can deal with NULL 
elements. Would that patch count as a bug fix?

Joe





pgsql-hackers by date:

Previous
From: Larry Rosenman
Date:
Subject: Re: libpq_r
Next
From: Bruce Momjian
Date:
Subject: Re: php with postgres