Re: Array slice subscripts (was Re: [SQL] plpgsql function

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andre Holzner <Andre(dot)Holzner(at)cern(dot)ch>, pgsql-sql(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Array slice subscripts (was Re: [SQL] plpgsql function
Date: 2002-02-22 03:55:55
Message-ID: 200202220355.g1M3ttr13214@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql


Is this a TODO item?

---------------------------------------------------------------------------

Tom Lane wrote:
> Andre Holzner <Andre(dot)Holzner(at)cern(dot)ch> writes:
> > Am I doing something wrong or is this a 'feature' ?
>
> What's biting you is that the array slice operator uses the provided
> lower bounds in the resultant array. For example:
>
> regression=# select pcha from zdec_bhab;
> pcha
> ------------------------------------
> {{11,12,13},{21,22,23},{31,32,33}}
> (1 row)
>
> regression=# select array_dims(pcha) from zdec_bhab;
> array_dims
> ------------
> [1:3][1:3]
> (1 row)
>
> regression=# select pcha[2:2][1:3] from zdec_bhab;
> pcha
> --------------
> {{21,22,23}}
> (1 row)
>
> regression=# select array_dims(pcha[2:2][1:3]) from zdec_bhab;
> array_dims
> ------------
> [2:2][1:3]
> (1 row)
>
> So your function receives an array with first index starting at 2,
> which it's not expecting; its attempt to fetch element [1][1] is out
> of bounds and produces a NULL.
>
> Offhand this behavior seems like a misfeature: perhaps it'd be more
> sensible for the extracted slice to always have index lower bounds
> set to 1. But I'd like to see some discussion before changing it
> (and I don't plan to touch it before 7.2 release, in any case ;-)).
>
> Comments anyone?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2002-02-22 04:01:42 Re: Automatic transactions in psql
Previous Message Bruce Momjian 2002-02-22 03:54:18 Re: elog() proposal

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2002-02-22 04:14:36 Re: Array slice subscripts (was Re: [SQL] plpgsql function with more than one array argument)
Previous Message Christopher Kings-Lynne 2002-02-22 03:13:42 Re: create index on function - why?