Re: ARRAY() returning NULL instead of ARRAY[] resp. {}
От | Markus Bertheau ☭ |
---|---|
Тема | Re: ARRAY() returning NULL instead of ARRAY[] resp. {} |
Дата | |
Msg-id | 1118067445.5506.6.camel@dicaprio.akademie1.de обсуждение исходный текст |
Ответ на | Re: ARRAY() returning NULL instead of ARRAY[] resp. {} (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: ARRAY() returning NULL instead of ARRAY[] resp. {}
|
Список | pgsql-sql |
В Втр, 24/05/2005 в 00:06 -0400, Tom Lane пишет: > Joe Conway <mail@joeconway.com> writes: > > Markus Bertheau wrote: > >> why does SELECT ARRAY(SELECT 1 WHERE FALSE) return NULL instead of > >> ARRAY[] resp. '{}'? > > > Why would you expect an empty array instead of a NULL? > > I think he's got a good point, actually. We document the ARRAY-with- > parens-around-a-SELECT syntax as > > The resulting one-dimensional array will have an element for > each row in the subquery result, with an element type matching > that of the subquery's output column. > > To me, that implies that a subquery result of no rows generates a > one-dimensional array of no elements, not a null array. By analogy, array_upper('{}'::TEXT[], 1) should return 0 instead of NULL. Markus -- Markus Bertheau ☭ <twanger@bluetwanger.de>
В списке pgsql-sql по дате отправления: