Re: odd behavior/possible bug
От | Joe Conway |
---|---|
Тема | Re: odd behavior/possible bug |
Дата | |
Msg-id | 3F2045FF.4040804@joeconway.com обсуждение исходный текст |
Ответ на | Re: odd behavior/possible bug (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: odd behavior/possible bug
Re: odd behavior/possible bug |
Список | 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 по дате отправления: