Search Postgresql Archives

Re: My very first PL/pgSQL procedure...

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

 



why not just use setval(), see docs for arguments.


---------- Original Message -----------
From: Philippe Ferreira <phil.f@xxxxxxxxxxxxxx>
To: pgsql-general@xxxxxxxxxxxxxx
Sent: Wed, 25 Jan 2006 22:11:11 +0100
Subject: Re: [GENERAL] My very first PL/pgSQL procedure...

> Hi,
> 
> The only solution I've found to get the same reliable result, but 
> without locking, is the dirty way (loops) :
> ---------------------------------------------------------------------------------------------------------------------
> CREATE OR REPLACE FUNCTION seq_min(sequence_name varchar, minval 
> integer) RETURNS VOID AS $$
> DECLARE
>   sequence_record RECORD;
> BEGIN
>   -- Get the current sequence value :
>   FOR sequence_record IN EXECUTE 'SELECT last_value FROM ' || 
> sequence_name LOOP
>     NULL;
>   END LOOP;
>   -- Loop to bring the sequence to (at least) minval :
>   WHILE sequence_record.last_value < minval LOOP
>     -- Increment by 1 the sequence (and get the new value) :
>     FOR sequence_record IN EXECUTE 'SELECT nextval(''' || sequence_name 
> || ''') AS last_value' LOOP
>       NULL;
>     END LOOP;
>   END LOOP;
>   RETURN;
> END;
> $$ LANGUAGE plpgsql;
> ---------------------------------------------------------------------------------------------------------------------
> 
> It gives the result I expect (and it doesn't interfere with concurrent 
> uses of the sequence), but it is not very optimized !
> So, if someone have a better idea, I'm still open !
> 
> Thank you,
> Philippe Ferreira.
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
>        subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
>        message can get through to the mailing list cleanly
------- End of Original Message -------



[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