DROP FUNCTION IF EXISTS make_plpgsql();
CREATE OR REPLACE FUNCTION make_plpgsql() RETURNS VOID AS $$
CREATE LANGUAGE plpgsql;
$$ LANGUAGE SQL;
SELECT
CASE WHEN
EXISTS(
SELECT
1
FROM
pg_catalog.pg_language
WHERE
lanname='plpgsql'
)
THEN
NULL
ELSE
make_plpgsql()
END;
DROP FUNCTION make_plpgsql();
DROP FUNCTION IF EXISTS drop_languages();
CREATE FUNCTION drop_languages() RETURNS void AS $$
DECLARE
rec RECORD;
cmd text;
BEGIN
cmd := '';
FOR rec IN SELECT
'DROP LANGUAGE ' || lanname || ';' AS name
FROM
pg_catalog.pg_language
WHERE
lanispl
LOOP
cmd := cmd || rec.name;
END LOOP;
EXECUTE cmd;
RETURN;
END;
$$ LANGUAGE plpgsql;
SELECT drop_languages();
DROP FUNCTION drop_languages();