sql >> Base de Datos >  >> RDS >> PostgreSQL

Lenguaje de procedimiento C de PostgreSQL no encontrado

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.