Thread: element from an array by its index
Hello,
I would like to know if there is a function that extracts an element by its index from an array?
I would like to know if there is a function that extracts an element by its index from an array?
On Tue, Jul 21, 2009 at 04:08:51PM +0600, Murat Kabilov wrote: > I would like to know if there is a function that extracts an element by its > index from an array? No, the syntax most people expect and use would be arr[ndx]. If you want a function, it would be easy to do: CREATE FUNCTION array_index(anyarray,int) RETURNS anyelement IMMUTABLE LANGUAGE sql AS $$ SELECT $1[$2]; $$; -- Sam http://samason.me.uk/
On Tue, Jul 21, 2009 at 10:47 AM, Sam Mason<sam@samason.me.uk> wrote: > On Tue, Jul 21, 2009 at 04:08:51PM +0600, Murat Kabilov wrote: >> I would like to know if there is a function that extracts an element by its >> index from an array? > > No, the syntax most people expect and use would be arr[ndx]. If you > want a function, it would be easy to do: > > CREATE FUNCTION array_index(anyarray,int) > RETURNS anyelement IMMUTABLE > LANGUAGE sql AS $$ > SELECT $1[$2]; $$; but, why would you write a function to do this? merlin
On Tue, Jul 21, 2009 at 02:29:12PM -0400, Merlin Moncure wrote: > On Tue, Jul 21, 2009 at 10:47 AM, Sam Mason<sam@samason.me.uk> wrote: > > On Tue, Jul 21, 2009 at 04:08:51PM +0600, Murat Kabilov wrote: > >> I would like to know if there is a function that extracts an element by its > >> index from an array? > > > > No, the syntax most people expect and use would be arr[ndx]. If you > > want a function, it would be easy to do: > > > > CREATE FUNCTION array_index(anyarray,int) > > RETURNS anyelement IMMUTABLE > > LANGUAGE sql AS $$ > > SELECT $1[$2]; $$; > > but, why would you write a function to do this? No idea, my guess was that Murat is driving PG through some other code and this expected to generate function-call style syntax for everything, including array indexing. I'd be interested to know the real reason as well! -- Sam http://samason.me.uk/