From d16b8776123ffe9e287dc2354e3ad5248231055f Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 10 Sep 2003 19:59:23 +0000 Subject: [PATCH] Add HINT if CREATE FUNCTION specifies a valid language, but the language isn't loaded into the database. --- src/backend/commands/functioncmds.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index a47820d2314..ea5ba103131 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.33 2003/08/04 02:39:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.34 2003/09/10 19:59:23 momjian Exp $ * * DESCRIPTION * These routines take the parse tree and pick out the @@ -435,10 +435,23 @@ CreateFunction(CreateFunctionStmt *stmt) PointerGetDatum(languageName), 0, 0, 0); if (!HeapTupleIsValid(languageTuple)) + /* Add any new languages to this list to invoke the hint. */ ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("language \"%s\" does not exist", languageName))); - + errmsg("language \"%s\" does not exist", languageName), + (strcmp(languageName, "plperl") == 0 || + strcmp(languageName, "plperlu") == 0 || + strcmp(languageName, "plphp") == 0 || + strcmp(languageName, "plpgsql") == 0 || + strcmp(languageName, "plpython") == 0 || + strcmp(languageName, "plpythonu") == 0 || + strcmp(languageName, "plr") == 0 || + strcmp(languageName, "plruby") == 0 || + strcmp(languageName, "plsh") == 0 || + strcmp(languageName, "pltcl") == 0 || + strcmp(languageName, "pltclu") == 0) ? + errhint("You need to use 'createlang' to load the language into the database.") : 0)); + languageOid = HeapTupleGetOid(languageTuple); languageStruct = (Form_pg_language) GETSTRUCT(languageTuple);