supabase / supautils

PostgreSQL extension that secures a cluster on a cloud environment

Home Page:https://supabase.github.io/supautils

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prevent dropping `plpgsql`

olirice opened this issue · comments

It is currently possible to drop plpgsql with

drop language plpgsql cascade;

which will breaks a lot of supabase functionality and is difficult to recover from

ERROR:  2BP01: cannot drop extension plpgsql because other objects depend on it
DETAIL:  function pgbouncer.get_auth(text) depends on language plpgsql
extension pgjwt depends on language plpgsql
function storage.foldername(text) depends on language plpgsql
function storage.filename(text) depends on language plpgsql
function storage.extension(text) depends on language plpgsql
function storage.search(text,text,integer,integer,integer) depends on language plpgsql
function grant_pg_cron_access() depends on language plpgsql
event trigger issue_pg_cron_access depends on function grant_pg_cron_access()
function grant_pg_net_access() depends on language plpgsql
event trigger issue_pg_net_access depends on function grant_pg_net_access()
function pgrst_ddl_watch() depends on language plpgsql
event trigger pgrst_ddl_watch depends on function pgrst_ddl_watch()
function pgrst_drop_watch() depends on language plpgsql
event trigger pgrst_drop_watch depends on function pgrst_drop_watch()
function grant_pg_graphql_access() depends on language plpgsql
event trigger issue_pg_graphql_access depends on function grant_pg_graphql_access()
function set_graphql_placeholder() depends on language plpgsql
event trigger issue_graphql_placeholder depends on function set_graphql_placeholder()
extension pgsodium depends on language plpgsql
extension supabase_vault depends on extension pgsodium
view vault.decrypted_secrets depends on table vault.secrets
function vault.secrets_encrypt_secret_secret() depends on language plpgsql
extension pg_graphql depends on language plpgsql
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

This task is to protect that language from being dropped