diff --git a/swh/storage/sql/10-swh-init.sql b/swh/storage/sql/10-swh-init.sql --- a/swh/storage/sql/10-swh-init.sql +++ b/swh/storage/sql/10-swh-init.sql @@ -4,4 +4,24 @@ create extension if not exists pgcrypto; create extension if not exists pg_trgm; -create or replace language plpgsql; +-- courtesy of Andreas 'ads' Scherbaum in +-- https://andreas.scherbaum.la/blog/archives/346-create-language-if-not-exist.html +create or replace function public.create_plpgsql_language () + returns text + as $$ + create language plpgsql; + select 'language plpgsql created'::text; + $$ +language 'sql'; + +select case when + (select true::boolean + from pg_language + where lanname='plpgsql') + then + (select 'language already installed'::text) + else + (select public.create_plpgsql_language()) + end; + +drop function public.create_plpgsql_language ();