Você provavelmente está se deparando com essa mudança no PostgreSQL 9.2 (citando as notas de lançamento aqui):
Não forçosamente nomes de linguagem procedurais em minúsculas em CREATEFUNCTION (Robert Haas)
Embora os identificadores de idioma sem aspas ainda estejam em minúsculas, as strings e os identificadores entre aspas não são mais forçosamente reduzidos. Assim, por exemplo, CREATE FUNCTION ... LANGUAGE 'C' não funcionará mais; deve ser escrito 'c', ou melhor omitir as aspas.
Também está refletido no manual para
CREATE FUNCTION
lang_name
O nome da linguagem na qual a função é implementada. Pode serSQL
,C
,internal
, ou o nome de uma linguagem procedural definida pelo usuário. Para compatibilidade com versões anteriores, o nome pode ser colocado entre aspas simples.
Citar o nome do idioma foi desencorajado desde pelo menos a versão 7.3 (talvez mais longa), mas os velhos hábitos custam a morrer, obviamente. Removendo as aspas em torno de
'C'
corrige o problema, chegando a:LANGUAGE c
ou LANGUAGE C
. PL/R
não estava pronto para o PostgreSQL 9.2 a esse respeito, a julgar pela página do projeto. Comentários de Joe Conway
Joe Conway deixou uma resposta que foi excluída porque deveria ser um comentário. Eu colo aqui para o público em geral que não pode ver as respostas excluídas:
Recebi a mensagem, só não tive tempo de fazer um novo lançamento do PL/R. Procure-o até dezembro, mas enquanto isso a solução manual mencionada acima é bem simples.