From: | "GIROIRE Nicolas (COFRAMI)" <nicolas(dot)giroire(at)airbus(dot)com> |
---|---|
To: | 'Ragnar Hafstað' <gnari(at)simnet(dot)is> |
Cc: | "'pgsql-general(at)postgresql(dot)org'" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: sort array optimisation in pl/perl |
Date: | 2005-03-25 14:29:03 |
Message-ID: | 1904E3EB39448246A7ECB76DF34A70B0036A401C@TOCOMEXC03 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
thanks for this help.
The method functions great but the profit of time is good just if I have a
lot of elements to deplace.
COFRAMI
Nicolas Giroire
on behalf of AIRBUS France
for In Flight & Ground Information Services - Development
Phone : +33 (0)5 67 19 98 74
Mailto:nicolas(dot)giroire(at)airbus(dot)com
-----Message d'origine-----
De : pgsql-general-owner(at)postgresql(dot)org
[mailto:pgsql-general-owner(at)postgresql(dot)org]De la part de Ragnar Hafstað
Envoyé : jeudi 24 mars 2005 21:53
À : GIROIRE Nicolas (COFRAMI)
Cc : 'pgsql-general(at)postgresql(dot)org'
Objet : Re: [GENERAL] sort array optimisation in pl/perl
On Thu, 2005-03-24 at 15:49 +0100, GIROIRE Nicolas (COFRAMI) wrote:
> I create an array which is result of query on postgresql database and
> then I want to sort rows in a particular way (impossible by query on
> database).
can you give us more details on this particular sort order?
> My solution consists to put a rows (indice m+1) in a temporary other
> and then move all element before indice n to m in rows with indice n+1
> to m+1 and last i put my temporary variable to indice n.
> I want to know if somebody know a better solution.
>
> I think of 2 solutions but i don't success to apply :
> - the first is to use list in which I could deplace references as a
> chained list
> - the second will be to deplace tab[n..m] to tab[n+1..m+1] in one
> instruction as ada language
it all depends on the expected sizes of your arrays, but perl has
some nice array operations, such as slices and splice()
these come to mind:
$x=$arr[$m+1];@arr[$n+1(dot)(dot)$m+1]=(at)arr[$n(dot)(dot)$m];$arr[$n]=$x;
or:
@arr[$n..$m+1]=($arr[$m+1],@arr[$n..$m]);
gnari
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq
This mail has originated outside your organization,
either from an external partner or the Global Internet.
Keep this in mind if you answer this message.
From | Date | Subject | |
---|---|---|---|
Next Message | GIROIRE Nicolas (COFRAMI) | 2005-03-25 14:35:20 | pl/perl problem of memory |
Previous Message | Tom Lane | 2005-03-25 07:05:43 | Re: relid and relname |