pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Markus Bertheau ☭ <twanger@bluetwanger.de>
To: Joe Conway <mail@joeconway.com>
Cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
Subject: Re: [SQL] ARRAY() returning NULL instead of ARRAY[]
Date: Mon, 06 Jun 2005 18:12:46 +0200
Message-ID: <1118074367.5506.16.camel@dicaprio.akademie1.de> (raw)
In-Reply-To: <42A472A4.6090505@joeconway.com>
References: <1116873219.7306.0.camel@localhost.localdomain>
	<42923762.7010708@joeconway.com>
	<16774.1116907560@sss.pgh.pa.us>
	<1118067445.5506.6.camel@dicaprio.akademie1.de>
	<25974.1118069089@sss.pgh.pa.us>
	<1118069699.5506.9.camel@dicaprio.akademie1.de>
	<42A470B5.8060007@joeconway.com>
	<42A472A4.6090505@joeconway.com>

В Пнд, 06/06/2005 в 08:58 -0700, Joe Conway пишет:
> Joe Conway wrote:
> > Actually, consistent with my last post, I think array_upper() on a 
> > zero-element array should return NULL. A zero-element array has a 
> > defined lower bound, but its upper bound is not zero -- it is really 
> > undefined.
> 
> Just to clarify my response, this is what I propose:
> 
> regression=# select array_upper('[2][1:]={{},{}}'::int[],1);
>   array_upper
> -------------
>             2
> (1 row)
> 
> regression=# select array_upper('[2][1:]={{},{}}'::int[],2) IS NULL;
>   ?column?
> ----------
>   t
> (1 row)

Hmm, this gets really complicated and inconsistent. Complicated means
unusable. What about modifying the dimension syntax such that the second
number means number of elements instead of upper bound? That particular
problem would go away then, and array_upper('[0:0]={}'::int[]) can
return the correct 0 then.

What I'm actually worrying about is that array_upper(array(select 1
where false)) returns 0.

An option would be to drop the possibility to let the array start at
another index than 0. I don't know why it was decided to do that in the
first place. It seems a rather odd feature to me.

Markus
-- 
Markus Bertheau ☭ <twanger@bluetwanger.de>




view thread (4+ messages)  latest in thread

Message-ID: <1118074367.5506.16.camel@dicaprio.akademie1.de>
Permalink:  ../1118074367.5506.16.camel@dicaprio.akademie1.de/
Also on:    postgresql.org/message-id/1118074367.5506.16.camel@dicaprio.akademie1.de

 · 

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: twanger@bluetwanger.de, mail@joeconway.com, tgl@sss.pgh.pa.us
  Subject: Re: [SQL] ARRAY() returning NULL instead of ARRAY[]
  In-Reply-To: <1118074367.5506.16.camel@dicaprio.akademie1.de>

* 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