gen_migrations

This commit is contained in:
Orion Kindel 2023-07-18 21:32:10 -05:00
parent 85aca00ea8
commit 4bc2f54cfd
Signed by untrusted user who does not match committer: orion
GPG Key ID: 6D4165AE4C928719
43 changed files with 5994 additions and 280 deletions

View File

@ -1,4 +1,4 @@
drop type "public"."usr_username";
alter type "public"."usr_username" rename attribute "username" to "str" cascade;
set check_function_bodies = off;
@ -31,7 +31,3 @@ CREATE OR REPLACE FUNCTION public.usr_username_to_string(val usr_username)
LANGUAGE sql
AS $function$select (val.str);$function$
;
create type "public"."usr_username" as ("str" text);

View File

@ -0,0 +1 @@

View File

@ -1,9 +1 @@
create table "public"."migration" (
"from_revision" text not null,
"to_revision" text not null,
"performed_on" timestamp without time zone not null default now(),
"script" text not null
);

View File

@ -1,5 +1,75 @@
create type "public"."usr_session_device" as enum ('linux', 'macos', 'win', 'android', 'ios', 'other');
create type "public"."usr_tag_or_email" as ("str" text);
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_of_string(val text)
RETURNS usr_tag_or_email
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_to_email(toe usr_tag_or_email)
RETURNS email
LANGUAGE plpgsql
IMMUTABLE
AS $function$
begin
if position('@' in usr_tag_or_email_to_string(toe)) > 0 then
return email_of_string(usr_tag_or_email_to_string(toe));
else
return null;
end if;
end;
$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_to_string(val usr_tag_or_email)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_to_tag(toe usr_tag_or_email)
RETURNS usr_tag
LANGUAGE plpgsql
IMMUTABLE
AS $function$
begin
if usr_tag_or_email_to_email(toe) is null then
return usr_tag_of_string(usr_tag_or_email_to_string(toe));
else
return null;
end if;
end;
$function$
;
create type "public"."usr_session_key" as ("str" text);
CREATE OR REPLACE FUNCTION public.usr_session_key_of_string(val text)
RETURNS usr_session_key
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.usr_session_key_to_string(val usr_session_key)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
CREATE OR REPLACE FUNCTION public.usr_session_key_gen()
RETURNS usr_session_key
LANGUAGE sql
AS $function$
select usr_session_key_of_string(
md5(extract(epoch from now()) || gen_random_bytes(32) :: text)
);
$function$
;
create table "public"."usr_session" (
"id" integer generated always as identity not null,
"key" usr_session_key not null default usr_session_key_gen(),
@ -52,30 +122,6 @@ end;
$function$
;
create type "public"."usr_session_key" as ("str" text);
CREATE OR REPLACE FUNCTION public.usr_session_key_gen()
RETURNS usr_session_key
LANGUAGE sql
AS $function$
select usr_session_key_of_string(
md5(extract(epoch from now()) || gen_random_bytes(32) :: text)
);
$function$
;
CREATE OR REPLACE FUNCTION public.usr_session_key_of_string(val text)
RETURNS usr_session_key
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.usr_session_key_to_string(val usr_session_key)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
CREATE OR REPLACE FUNCTION public.usr_session_login(tag_or_email usr_tag_or_email, password text, remember boolean DEFAULT false, location text DEFAULT NULL::text, device usr_session_device DEFAULT NULL::usr_session_device, ip inet DEFAULT NULL::inet)
RETURNS usr_session_key
LANGUAGE plpgsql
@ -143,50 +189,4 @@ end;
$function$
;
create type "public"."usr_tag_or_email" as ("str" text);
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_of_string(val text)
RETURNS usr_tag_or_email
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_to_email(toe usr_tag_or_email)
RETURNS email
LANGUAGE plpgsql
IMMUTABLE
AS $function$
begin
if position('@' in usr_tag_or_email_to_string(toe)) > 0 then
return email_of_string(usr_tag_or_email_to_string(toe));
else
return null;
end if;
end;
$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_to_string(val usr_tag_or_email)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_or_email_to_tag(toe usr_tag_or_email)
RETURNS usr_tag
LANGUAGE plpgsql
IMMUTABLE
AS $function$
begin
if usr_tag_or_email_to_email(toe) is null then
return usr_tag_of_string(usr_tag_or_email_to_string(toe));
else
return null;
end if;
end;
$function$
;
CREATE TRIGGER trigger_usr_session_immutable_columns BEFORE UPDATE ON public.usr_session FOR EACH ROW EXECUTE FUNCTION do_usr_session_immutable_columns();

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -89,5 +89,3 @@ CREATE OR REPLACE FUNCTION public.grp_members_admins()
STABLE
AS $function$select * from public.grp_members((public.grp_admins()).id)$function$
;

View File

@ -438,5 +438,3 @@ begin
end;
$function$
;

View File

@ -1,3 +1 @@
alter table "public"."migration" drop column "script";

View File

@ -545,5 +545,3 @@ AS $function$
end;
$function$
;

View File

@ -0,0 +1 @@

View File

@ -198,5 +198,3 @@ begin
end;
$function$
;

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

1
56980bf_to_f84b8ed.sql Normal file
View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -60,5 +60,3 @@ AS $function$
end;
$function$
;

View File

@ -1,8 +1,8 @@
drop function if exists "public"."hashed_text_string"(hashed hashed_text);
drop type "public"."email";
alter type "public"."email" rename attribute "email" to "str";
drop type "public"."hashed_text";
alter type "public"."hashed_text" rename attribute "hashed" to "str";
set check_function_bodies = off;
@ -30,8 +30,6 @@ CREATE OR REPLACE FUNCTION public.hashed_text_to_string(val hashed_text)
AS $function$select (val.str);$function$
;
create type "public"."email" as ("str" text);
CREATE OR REPLACE FUNCTION public.hash_text(plain text)
RETURNS hashed_text
LANGUAGE plpgsql
@ -43,8 +41,6 @@ end;
$function$
;
create type "public"."hashed_text" as ("str" text);
CREATE OR REPLACE FUNCTION public.hashed_text_matches(plain text, hashed hashed_text)
RETURNS boolean
LANGUAGE plpgsql
@ -55,5 +51,3 @@ begin
end;
$function$
;

View File

@ -0,0 +1 @@

View File

@ -28,5 +28,3 @@ begin
end;
$function$
;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@

View File

@ -30,5 +30,3 @@ CREATE OR REPLACE FUNCTION public.hashed_text_string(hashed hashed_text)
IMMUTABLE
AS $function$select (hashed.hashed);$function$
;

1
96937df_skipped.sql Normal file
View File

@ -0,0 +1 @@

View File

@ -1,10 +1,48 @@
drop function if exists "public"."mark_columns_immutable"(schema text, table_ text, columns text[]);
drop type "public"."usr_username";
create type "public"."usr_tag" as ("str" text);
drop function if exists "public"."usr_username_of_string"(val text);
CREATE OR REPLACE FUNCTION public.usr_tag_of_string(val text)
RETURNS usr_tag
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_to_string(val usr_tag)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
create type "public"."authz_scope" as ("str" text);
CREATE OR REPLACE FUNCTION public.authz_scope_of_string(val text)
RETURNS authz_scope
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.authz_scope_to_string(val authz_scope)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
create type "public"."community_tag" as ("str" text);
CREATE OR REPLACE FUNCTION public.community_tag_of_string(val text)
RETURNS community_tag
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.community_tag_to_string(val community_tag)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
drop function if exists "public"."usr_username_to_string"(val usr_username);
create table "public"."community" (
"id" integer generated always as identity not null,
@ -218,35 +256,6 @@ AS $function$
end;
$function$
;
create type "public"."authz_scope" as ("str" text);
CREATE OR REPLACE FUNCTION public.authz_scope_of_string(val text)
RETURNS authz_scope
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.authz_scope_to_string(val authz_scope)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
create type "public"."community_tag" as ("str" text);
CREATE OR REPLACE FUNCTION public.community_tag_of_string(val text)
RETURNS community_tag
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.community_tag_to_string(val community_tag)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
CREATE OR REPLACE FUNCTION public.do_community_audit()
RETURNS trigger
LANGUAGE plpgsql
@ -665,20 +674,6 @@ AS $function$
$function$
;
create type "public"."usr_tag" as ("str" text);
CREATE OR REPLACE FUNCTION public.usr_tag_of_string(val text)
RETURNS usr_tag
LANGUAGE sql
AS $function$select row(val);$function$
;
CREATE OR REPLACE FUNCTION public.usr_tag_to_string(val usr_tag)
RETURNS text
LANGUAGE sql
AS $function$select (val.str);$function$
;
CREATE OR REPLACE FUNCTION public.do_usr_audit()
RETURNS trigger
LANGUAGE plpgsql
@ -731,4 +726,8 @@ CREATE TRIGGER trigger_community_nonmember_scope_audit AFTER INSERT OR DELETE OR
CREATE TRIGGER trigger_community_nonmember_scope_immutable_columns BEFORE UPDATE ON public.community_nonmember_scope FOR EACH ROW EXECUTE FUNCTION do_community_nonmember_scope_immutable_columns();
drop function if exists "public"."usr_username_of_string"(val text);
drop function if exists "public"."usr_username_to_string"(val usr_username);
drop type "public"."usr_username";

View File

@ -0,0 +1 @@

1202
be07aca_to_56957d3.sql Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -558,5 +558,3 @@ CREATE TRIGGER trigger_thread_feed_immutable_columns BEFORE UPDATE ON public.thr
CREATE TRIGGER trigger_thread_feed_soft_delete BEFORE DELETE ON public.thread_feed FOR EACH ROW EXECUTE FUNCTION do_thread_feed_soft_delete();
CREATE TRIGGER trigger_usr_immutable_columns BEFORE UPDATE ON public.usr FOR EACH ROW EXECUTE FUNCTION do_usr_immutable_columns();

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -1,3 +1,9 @@
create type "public"."email" as ("email" text);
create type "public"."hashed_text" as ("hashed" text);
create type "public"."usr_username" as ("username" text);
create type "public"."audit_kind" as enum ('modify', 'delete', 'create');
create type "public"."thread_kind" as enum ('post', 'short', 'message');
@ -136,14 +142,6 @@ AS $function$
$function$
;
create type "public"."email" as ("email" text);
create type "public"."hashed_text" as ("hashed" text);
create type "public"."usr_username" as ("username" text);
CREATE TRIGGER trigger_usr_audit AFTER INSERT OR UPDATE ON public.usr FOR EACH ROW EXECUTE FUNCTION do_usr_audit();
CREATE TRIGGER trigger_usr_soft_delete BEFORE DELETE ON public.usr FOR EACH ROW EXECUTE FUNCTION do_usr_soft_delete();

View File

@ -0,0 +1 @@