Probabilmente stai riscontrando questa modifica in PostgreSQL 9.2 (citando qui le note di rilascio):
Nomi di lingua procedurali non più forzatamente minuscoli in CREATEFUNCTION (Robert Haas)
Mentre gli identificatori di lingua senza virgolette sono ancora minuscoli, le stringhe e gli identificatori tra virgolette non sono più forzatamente ridotti. Così, ad esempio, CREATE FUNCTION ... LANGUAGE 'C' non funzionerà più; deve essere scritto 'c', o meglio omettere le virgolette.
Si riflette anche nel manuale di CREATE FUNCTION
nome_lingua
Il nome della lingua in cui è implementata la funzione. Può essere SQL
, C
, internal
o il nome di una lingua procedurale definita dall'utente. Per compatibilità con le versioni precedenti, il nome può essere racchiuso tra virgolette singole.
Citare il nome della lingua è stato sconsigliato almeno dalla versione 7.3 (forse più lunga), ma ovviamente le vecchie abitudini sono dure a morire. Rimozione delle virgolette attorno a 'C'
risolve il problema, arrivando a:LANGUAGE c
o LANGUAGE C
.
PL/R
non era pronto per PostgreSQL 9.2 in questo senso, a giudicare dalla pagina del progetto.
Commenti di Joe Conway
Joe Conway ha lasciato una risposta che è stata cancellata perché dovrebbe essere un commento. Lo incollo qui per il pubblico in generale che non può vedere le risposte eliminate:
Ho ricevuto il messaggio, semplicemente non ho avuto il tempo di fare una nuova versione PL/R. Cercala entro dicembre, ma nel frattempo la soluzione manuale sopra indicata è piuttosto semplice.