GIROIRE Nicolas (COFRAMI) wrote:
my sort algorithm is a very particular solution.
In fact, I put record in array to allow me to sort record. I sort them by
using one column of my table but the column indx can have duplicate value
and it's volontary.

I still can't see why you can't sort by that column with "order by" There's nothing obvious in your description that rules that out. Are you aware that PostgreSQL offers functional and partial indexes? They can make complex selection/ordering quite efficient.


here is the order algorithm :
for i in 1..recordcount loop                    
                        tmp_row := children[i];
                        indx := tmp_row[5];

if (indx<i) then -- on déplace les éléments pour laisser la
place à l'élément qu'on déplace
for j in 0..(i-indx-1) loop
children[i-j] := children[i-j-1];
end loop;
-- on met l'élément à sa nouvelle position
children[indx] := tmp_row;
end if;
end loop;


It's particular to my system. I won't go to explain my choice but if someone
has an idea to save time.

If you are going to sort, this looks a particularly slow algorithm for large values of "recordcount". Personally, I'd use plperl/plpython or something with built-in hash sorting capabilities. That will almost certainly be tens or hundreds of times faster.


--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
   (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to