Re: Users functions library - Mailing list pgsql-general
From | Pavel Stehule |
---|---|
Subject | Re: Users functions library |
Date | |
Msg-id | 162867790807131452p30b85191hbb6dc4ca7a40a457@mail.gmail.com Whole thread Raw |
In response to | Re: Users functions library ("Alejandro D. Burne" <alejandro.dburne@gmail.com>) |
List | pgsql-general |
2008/7/13 Alejandro D. Burne <alejandro.dburne@gmail.com>: > 2008/7/13 Pavel Stehule <pavel.stehule@gmail.com>: >> Hello >> >> safe it to pgfoundry http://pgfoundry.org/ >> regards >> Pavel Stehule >> >> > > May be to much for including in pgfoundry, I think to build a place to > share code developed in postgres functions (plpgsql, plpython, etc) > and to categorize them. I can help to develop it, buy my natural > language is spanish and I'm uncomfortable writing in english. > > Greetings, Alejandro > you can share code on http://www.pgsql.cz/index.php/PostgreSQL_SQL_Tricks Regards Pavel > > >> 2008/7/13 Alejandro D. Burne <alejandro.dburne@gmail.com>: >>> 2008/7/12 Alejandro D. Burne <alejandro.dburne@gmail.com>: >>>> Hi, I need to write a function that gives me a password string, no >>>> just a numbers-characters string; something like people wrote in php, >>>> its based on determined syllables and numbers. >>>> I think it be useful to other people, is there a site where one can >>>> post it and share with other postgres users? >>>> >>>> Alejandro >>>> >>> >>> Sorry, the function: >>> >>> CREATE OR REPLACE FUNCTION gen_password(plenght smallint) >>> RETURNS bpchar AS >>> $BODY$ >>> >>> DECLARE >>> lValid_Consonant bpchar DEFAULT 'BCDFGHJKMNPRSTV'; >>> lValid_Vowel bpchar DEFAULT 'AEIOUY'; >>> lValid_Numbers bpchar DEFAULT '23456789'; >>> >>> lConsonant_Length smallint DEFAULT char_length(lValid_Consonant); >>> lVowel_Length smallint DEFAULT char_length(lValid_Vowel); >>> lNumbers_Length smallint DEFAULT char_length(lValid_Numbers); >>> >>> lPassword bpchar DEFAULT ''; >>> >>> BEGIN >>> LOOP >>> IF ROUND(RANDOM()*3)<>1 THEN >>> lPassword:=lPassword||SUBSTRING(lValid_Consonant FROM >>> (ROUND(RANDOM()*(lConsonant_Length-1))+1)::integer FOR 1)|| >>> SUBSTRING(lValid_Vowel FROM >>> (ROUND(RANDOM()*(lVowel_Length-1))+1)::integer FOR 1); >>> IF ROUND(RANDOM()*2)<>1 THEN >>> lPassword:=lPassword||SUBSTRING(lValid_Consonant FROM >>> (ROUND(RANDOM()*(lConsonant_Length-1))+1)::integer FOR 1); >>> END IF; >>> ELSE >>> lPassword:=lPassword||SUBSTRING(lValid_Numbers FROM >>> (ROUND(RANDOM()*(lNumbers_Length-1))+1)::integer FOR 1); >>> END IF; >>> IF char_length(lPassword) >= plenght THEN >>> EXIT; >>> END IF; >>> END LOOP; >>> >>> RETURN SUBSTRING(lPassword FROM 1 FOR plenght); >>> END; >>> >>> $BODY$ >>> LANGUAGE 'plpgsql' VOLATILE; >>> >>> -- >>> Sent via pgsql-general mailing list (pgsql-general@postgresql.org) >>> To make changes to your subscription: >>> http://www.postgresql.org/mailpref/pgsql-general >>> >> >
pgsql-general by date: