diff --git a/7a4d728_to_c19a46b.sql b/7a4d728_to_c19a46b.sql new file mode 100644 index 0000000..9cb9e39 --- /dev/null +++ b/7a4d728_to_c19a46b.sql @@ -0,0 +1,59 @@ +drop function if exists "public"."hashed_text_string"(hashed hashed_text); + +drop type "public"."email"; + +drop type "public"."hashed_text"; + +set check_function_bodies = off; + +CREATE OR REPLACE FUNCTION public.email_of_string(val text) + RETURNS email + LANGUAGE sql +AS $function$select row(val);$function$ +; + +CREATE OR REPLACE FUNCTION public.email_to_string(val email) + RETURNS text + LANGUAGE sql +AS $function$select (val.str);$function$ +; + +CREATE OR REPLACE FUNCTION public.hashed_text_of_string(val text) + RETURNS hashed_text + LANGUAGE sql +AS $function$select row(val);$function$ +; + +CREATE OR REPLACE FUNCTION public.hashed_text_to_string(val hashed_text) + RETURNS text + LANGUAGE sql +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 + IMMUTABLE +AS $function$ +begin + return hashed_text_of_string(crypt(plain, gen_salt('bf'))); +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 + IMMUTABLE +AS $function$ +begin + return hashed_text_to_string(hashed) = crypt(plain, hashed_text_to_string(hashed)); +end; +$function$ +; + +