pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Joe Conway <mail@joeconway.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Markus Bertheau <twanger@bluetwanger.de>
Cc: pgsql-sql@postgresql.org
Subject: Re: ARRAY() returning NULL instead of ARRAY[] resp. {}
Date: Sat, 4 Jun 2005 13:52:16 -0400 (EDT)
Message-ID: <200506041752.j54HqGZ12891@candle.pha.pa.us> (raw)
In-Reply-To: <42961E44.7040701@joeconway.com>

Joe Conway wrote:
> Tom Lane wrote:
> > 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.
> 
> OK, looks like I'm outnumbered.
> 
> But as far as I know, we have never had a way to produce a 
> one-dimensional empty array. Empty arrays thus far have been dimensionless.
> 
> Assuming we really want an empty 1D array, I created the attached patch. 
> This works fine, but now leaves a few oddities to be dealt with, e.g.:
> 
> regression=# select array_dims(array(select 1 where false));
>   array_dims
> ------------
>   [1:0]
> (1 row)
> 
> Any thoughts on how this should be handled for an empty 1D array?
> 
> > The point Markus is complaining about seems like it should
> > be easily fixable.
> 
> Well, "easily" is a relative term. My Postgres hacking neurons have 
> gotten kind of rusty lately -- but then maybe that was your underlying 
> point ;-)

No one responed to this email, so I will try.  Is this the one
dimmentional array you were talking about?

	test=> select array_dims('{}'::integer[]);
	 array_dims
	------------
	
	(1 row)

Why is [1:0] wrong to return?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073



view thread (22+ messages)  latest in thread

Message-ID: <200506041752.j54HqGZ12891@candle.pha.pa.us>
Permalink:  ../200506041752.j54HqGZ12891@candle.pha.pa.us/
Also on:    postgresql.org/message-id/200506041752.j54HqGZ12891@candle.pha.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: pgman@candle.pha.pa.us, mail@joeconway.com, tgl@sss.pgh.pa.us, twanger@bluetwanger.de
  Subject: Re: ARRAY() returning NULL instead of ARRAY[] resp. {}
  In-Reply-To: <200506041752.j54HqGZ12891@candle.pha.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox