On Sun, Aug 16, 2009 at 6:12 PM, Alvaro Herrera<alvherre@xxxxxxxxxxxxxxxxx> wrote: > It's in the wiki, in the Snippets area. > wiki.postgresql.org/wiki/Snippets > (pseudo encrypt or something like that I think it's called) Here's a simple 255 value linear feedback shift register. It's nothing fancy, but works as an example. It's not any kind of a secure sequence, but can be handy for generating pseudo random codes for things like identifiers that need to not be sequential. create table lfsr (b bit(8)); insert into lfsr values ('10100011'); create or replace function lf() returns bit(8) language sql as $$ update lfsr set b=(select ((substring(b,1,1)#substring(b,3,1)#substring(b,4,1)#substring(b,5,1)))::bit(8)>>7|(b<<1) from lfsr) ; select b from lfsr $$; create table l (b bit(8), i int); insert into l select lf(),generate_series(1,255); select count(distinct(b)) from l; select b, count(b) from l group by b having count(b) > 1; insert into l select lf(),generate_series(1,1); select b, count(b) from l group by b having count(b) > 1; -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general