Probablemente se encuentre con este cambio en PostgreSQL 9.2 (citando las notas de la versión aquí):
Ya no es obligatorio escribir en minúsculas los nombres de los lenguajes de procedimiento en CREATEFUNCTION (Robert Haas)
Si bien los identificadores de idioma sin comillas aún se escriben en minúsculas, las cadenas y los identificadores entre comillas ya no se escriben en minúsculas a la fuerza. Así, por ejemplo, CREAR FUNCIÓN... IDIOMA 'C' ya no funcionará; debe escribirse 'c', o mejor omitir las comillas.
También se refleja en el manual de CREATE FUNCTION
lang_name
El nombre del idioma en el que se implementa la función. Puede ser SQL
, C
, internal
, o el nombre de un lenguaje de procedimiento definido por el usuario. Para compatibilidad con versiones anteriores, el nombre se puede incluir entre comillas simples.
Se ha desaconsejado citar el nombre del idioma desde al menos la versión 7.3 (tal vez más), pero los viejos hábitos son difíciles de olvidar, obviamente. Eliminando las comillas alrededor de 'C'
soluciona el problema, llegando a:LANGUAGE c
o LANGUAGE C
.
PL/R
no estaba listo para PostgreSQL 9.2 en ese sentido, a juzgar por la página del proyecto.
Comentarios de Joe Conway
Joe Conway dejó una respuesta que se eliminó porque debería ser un comentario. Lo pego aquí para el público en general que no puede ver las respuestas eliminadas:
Recibí el mensaje, simplemente no he tenido tiempo de hacer un nuevo lanzamiento de PL/R. Búscalo para diciembre, pero mientras tanto, la solución manual mencionada anteriormente es bastante simple.