Olá, pessoal

Tudo bem com vocês? Ando meio sumido pela correria, mas achei um problema
interessante e acho legal postar aqui para discutirmos.

Vamos ao problema: Estou desenvolvmendo uma function para dar permissão a um
determinado usuário, porém quero fazer um tratamento de exceção caso o
usuário não exista não gere uma mensagem de erro.

Pensando logicamente minha idéia era usar o error code:
invalid_role_specification, porém não funcionou e o mesmo não cai no
tratamento da exceção, a única maneira de resolver foi usando:
syntax_error_or_access_rule_violation, que para mim não faz muito sentido.

Gostaria de saber se alguém já passou por algum problema similar ou tem
alguma idéia do que pode acontecer. Foi testado nas versões 8.1.9, 8.2.7 e
8.3.1.

Abaixo esta o código da minha function.

CREATE OR REPLACE FUNCTION foo(text) RETURNS void AS $$
BEGIN
BEGIN
EXECUTE 'GRANT SELECT ON teste TO ' || $1;
EXCEPTION WHEN syntax_error_or_access_rule_violation THEN
RAISE NOTICE 'erro';
null;
END;
END;
$$ language plpgsql;

[]s

-- 
João Paulo
www.dextra.com.br/postgres
PostgreSQL
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a