Re: [HACKERS] need help for array appending & deleting - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] need help for array appending & deleting
Date
Msg-id 17738.936194722@sss.pgh.pa.us
Whole thread Raw
In response to need help for array appending & deleting  (Peter Blazso <blazso@deltav.hu>)
List pgsql-hackers
Peter Blazso <blazso@deltav.hu> writes:
> Unless it exists, I'd like to implement code for the array manipulations
> above for Postgresql. and I need some help for it. I have already run
> through the sources concerned but I need to be pointed to the right
> direction on where to start and what kind of functions I should use. I'd
> also like to have a bit more detailed info on array structure (or at
> least where I can find a good doc. I've been looking for it in
> 'array.h', 'arrayutils.c' and 'arrayfuncs.c').

What's in the code is all there is :-(.  Please consider improving the
documentation once you have studied the code enough to understand what's
going on.

I recall having looked at that stuff recently, and IIRC the general
structure of an array inside the backend is
Overall length word        (required for any VARLENA type)a couple words of fixed overheaddimension info array (1 entry
perdimension)array elements, in sequence
 

I don't recall the sequence that's used (row or column major).  Also,
I think the array elements are aligned on INTALIGN boundaries, which
is pretty bogus --- arrays of doubles would fail on a lot of hardware.
The code should either use MAXALIGN always, or better use the specific
alignment needed for the array element type (as indicated by the pg_type
data).

BTW, please be sure you are working with current sources and not REL6_5
branch.  I've already fixed a bunch of parser/optimizer problems with
arrays; you shouldn't have to reinvent those changes.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Changes for 6.5.2 ?
Next
From: Oleg Bartunov
Date:
Subject: Re: [HACKERS] Changes for 6.5.2 ?