Array access performance - Mailing list pgsql-performance

From Andreas Brandl
Subject Array access performance
Date
Msg-id 6332413.23.1312290008254.JavaMail.root@store1.zcs.ext.wpsrv.net
Whole thread Raw
Responses Re: Array access performance  (Andreas Brandl <ml@3.141592654.de>)
Re: Array access performance  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-performance
Hi,

I'm looking for a hint how array access performs in PostgreSQL in respect to performance. Normally I would expect
accessof a 1-dimensional Array at slot i (array[i]) to perform in constant time (random access). 

Is this also true for postgres' arrays?

May concrete example is a 1-dimensional array d of length <= 600 (which will grow at a rate of 1 entry/day) stored in a
table'scolumn. I need to access this array two times per tuple, i.e. d[a], d[b]. Therefore I hope access is not linear.
Isthis correct? 

Also I'm having some performance issues building this array. I'm doing this with a used-defined aggregate function,
startingwith an empty array and using array_append and some calculation for each new entry. I assume this involves some
copying/memoryallocation on each call, but I could not find the implementation of array_append in postgres-source/git.  

Is there an efficient way to append to an array? I could also start with a pre-initialized array of the required
length,but this involves some complexity. 

Thank you

Regards,
Andreas

pgsql-performance by date:

Previous
From: Jan Wielgus
Date:
Subject: Tsearch2 - bad performance with concatenated ts-vectors
Next
From: Andreas Brandl
Date:
Subject: Re: Array access performance