mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-04 13:06:50 +00:00
Move hid generation to the database. Closes #157.
This commit is contained in:
parent
c39c51426f
commit
8ac2f1e4b8
5 changed files with 36 additions and 43 deletions
|
|
@ -81,4 +81,31 @@ as $$
|
|||
inner join members on members.system = systems.id
|
||||
left join member_guild on member_guild.member = members.id and member_guild.guild = guild_id
|
||||
where accounts.uid = account_id
|
||||
$$ language sql stable rows 10;
|
||||
$$ language sql stable rows 10;
|
||||
|
||||
|
||||
create function generate_hid() returns text as $$
|
||||
select string_agg(substr('abcdefghijklmnopqrstuvwxyz', ceil(random() * 26)::integer, 1), '') from generate_series(1, 5)
|
||||
$$ language sql volatile;
|
||||
|
||||
|
||||
create function find_free_system_hid() returns text as $$
|
||||
declare new_hid text;
|
||||
begin
|
||||
loop
|
||||
new_hid := generate_hid();
|
||||
if not exists (select 1 from systems where hid = new_hid) then return new_hid; end if;
|
||||
end loop;
|
||||
end
|
||||
$$ language plpgsql volatile;
|
||||
|
||||
|
||||
create function find_free_member_hid() returns text as $$
|
||||
declare new_hid text;
|
||||
begin
|
||||
loop
|
||||
new_hid := generate_hid();
|
||||
if not exists (select 1 from members where hid = new_hid) then return new_hid; end if;
|
||||
end loop;
|
||||
end
|
||||
$$ language plpgsql volatile;
|
||||
|
|
@ -2,4 +2,7 @@
|
|||
drop view if exists member_list;
|
||||
|
||||
drop function if exists message_context;
|
||||
drop function if exists proxy_members;
|
||||
drop function if exists proxy_members;
|
||||
drop function if exists generate_hid;
|
||||
drop function if exists find_free_system_hid;
|
||||
drop function if exists find_free_member_hid;
|
||||
Loading…
Add table
Add a link
Reference in a new issue