Skip to content

Commit 5d72efe

Browse files
authored
Merge pull request #39 from osusach/fix/generate-username-db-function-random
fix/generate-username-db-function-random
2 parents a65883a + c797ecd commit 5d72efe

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
CREATE OR REPLACE FUNCTION public.generate_username()
2+
RETURNS text
3+
LANGUAGE plpgsql
4+
SET search_path TO ''
5+
AS $function$
6+
DECLARE
7+
generated_username text;
8+
retry_count int := 0;
9+
BEGIN
10+
LOOP
11+
generated_username := 'user' || substring(gen_random_uuid()::text FROM 1 FOR 8);
12+
13+
-- Check if username already exists
14+
IF NOT EXISTS (SELECT 1 FROM public.profiles WHERE username = generated_username) THEN
15+
RETURN generated_username;
16+
END IF;
17+
18+
retry_count := retry_count + 1;
19+
IF retry_count >= 5 THEN
20+
RAISE EXCEPTION 'Failed to generate a unique username after 5 attempts';
21+
END IF;
22+
END LOOP;
23+
END;
24+
$function$
25+
;

0 commit comments

Comments
 (0)