Re: [HACKERS] need help for array appending & deleting

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [HACKERS] need help for array appending & deleting
Дата
Msg-id 17738.936194722@sss.pgh.pa.us
обсуждение исходный текст
Ответ на need help for array appending & deleting  (Peter Blazso <blazso@deltav.hu>)
Список 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 по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] Changes for 6.5.2 ?
Следующее
От: Oleg Bartunov
Дата:
Сообщение: Re: [HACKERS] Changes for 6.5.2 ?