A resposta para ERRO: permissão negada para o idioma c não está funcionando para mim:
$ psql -U postgres -d postgres
psql (15.4 (Debian 15.4-1.pgdg120+1))
postgres=> CREATE DATABASE books;
CREATE DATABASE
postgres=> \c books
You are now connected to database "books" as user "postgres".
postgres=> CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
ERROR: permission denied for language c
postgres=> UPDATE pg_language SET lanpltrusted = true WHERE lanname LIKE 'c';
ERROR: permission denied for table pg_language
Esta CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
é a primeira coisa que preciso fazer, caso contrário, receberei erros como:
ERROR: function uuid_generate_v4() does not exist
No entanto, ele está bloqueado por permission denied for language c
. Como posso fazer isso funcionar, por favor?
Você precisa ser um superusuário para criar funções em linguagem C.
E você nunca deve atualizar tabelas de catálogo. Felizmente, como você não era um superusuário, você foi impedido de dar um tiro no próprio pé.
Se você não tem acesso de superusuário (e espero que não tenha, dado o que estava tentando fazer aqui), você terá que pedir ao seu DBA para executar essas instruções para você.
Finalmente, você não precisa dessa extensão para gerar UUIDs aleatórios. Versões recentes do PostgreSQL possuem
gen_random_uuid()
.