Search Postgresql Archives

Re: MOVE cursor in plpgsql?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Hi all,
> 
> Is there a way to move a cursor in plpgsql in the same way as in
> regular sql?  The function below would like to move the cursor back to
> the start each time the cursor runs out of rows, creating pairs of
> integers that are randomly put together.
> 
> The "motivation" for this is to randomly assign parts of a
> shakespearian play (N=25) to not enough actors (N=6), giving each
> actor several parts.  (To be truly fair, I would have to weight by
> number of lines, but that is for version 2... )  If there is a more
> graceful way to solve the problem, I am interested, but I would like
> to know about the MOVE issue in any case.

Wouldn't it be easier to list the parts in a random order (simply ORDER
BY RANDOM()) and then use modulo by number of actors (but there's no
ROWNUM so a loop is needed anyway). Something like

i := 0;

FOR x IN SELECT .... parts ... LOOP
	actor := mod(i,number_of_actors);
	i := i + 1;
END LOOP;

This should be fair enough and does not need moving the cursors in
various areas.

t.v.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux