2008/7/13 Pavel Stehule <pavel.stehule@xxxxxxxxx>: > 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 > 2008/7/13 Alejandro D. Burne <alejandro.dburne@xxxxxxxxx>: >> 2008/7/12 Alejandro D. Burne <alejandro.dburne@xxxxxxxxx>: >>> 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@xxxxxxxxxxxxxx) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgsql-general >> >