Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit d16b877

Browse files
committed
Add HINT if CREATE FUNCTION specifies a valid language, but the language
isn't loaded into the database.
1 parent a72fce0 commit d16b877

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/backend/commands/functioncmds.c

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.33 2003/08/04 02:39:58 momjian Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.34 2003/09/10 19:59:23 momjian Exp $
1313
*
1414
* DESCRIPTION
1515
* These routines take the parse tree and pick out the
@@ -435,10 +435,23 @@ CreateFunction(CreateFunctionStmt *stmt)
435435
PointerGetDatum(languageName),
436436
0, 0, 0);
437437
if (!HeapTupleIsValid(languageTuple))
438+
/* Add any new languages to this list to invoke the hint. */
438439
ereport(ERROR,
439440
(errcode(ERRCODE_UNDEFINED_OBJECT),
440-
errmsg("language \"%s\" does not exist", languageName)));
441-
441+
errmsg("language \"%s\" does not exist", languageName),
442+
(strcmp(languageName, "plperl") == 0 ||
443+
strcmp(languageName, "plperlu") == 0 ||
444+
strcmp(languageName, "plphp") == 0 ||
445+
strcmp(languageName, "plpgsql") == 0 ||
446+
strcmp(languageName, "plpython") == 0 ||
447+
strcmp(languageName, "plpythonu") == 0 ||
448+
strcmp(languageName, "plr") == 0 ||
449+
strcmp(languageName, "plruby") == 0 ||
450+
strcmp(languageName, "plsh") == 0 ||
451+
strcmp(languageName, "pltcl") == 0 ||
452+
strcmp(languageName, "pltclu") == 0) ?
453+
errhint("You need to use 'createlang' to load the language into the database.") : 0));
454+
442455
languageOid = HeapTupleGetOid(languageTuple);
443456
languageStruct = (Form_pg_language) GETSTRUCT(languageTuple);
444457

0 commit comments

Comments
 (0)