aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/proclang.c16
-rw-r--r--src/backend/commands/trigger.c19
-rw-r--r--src/backend/utils/fmgr/fmgr.c33
3 files changed, 20 insertions, 48 deletions
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index 0c28dea7317..9672e74ea9b 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.39 2002/08/05 03:29:17 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.40 2002/08/13 17:22:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,7 +56,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
* Check permission
*/
if (!superuser())
- elog(ERROR, "Only users with Postgres superuser privilege are "
+ elog(ERROR, "Only users with superuser privilege are "
"permitted to create procedural languages");
/*
@@ -77,10 +77,10 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
MemSet(typev, 0, sizeof(typev));
procOid = LookupFuncName(stmt->plhandler, 0, typev);
if (!OidIsValid(procOid))
- elog(ERROR, "PL handler function %s() doesn't exist",
+ elog(ERROR, "function %s() doesn't exist",
NameListToString(stmt->plhandler));
if (get_func_rettype(procOid) != InvalidOid)
- elog(ERROR, "PL handler function %s() does not return type \"opaque\"",
+ elog(ERROR, "function %s() does not return type \"opaque\"",
NameListToString(stmt->plhandler));
/* validate the validator function */
@@ -89,7 +89,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
typev[0] = OIDOID;
valProcOid = LookupFuncName(stmt->plvalidator, 1, typev);
if (!OidIsValid(valProcOid))
- elog(ERROR, "PL validator function %s(oid) doesn't exist",
+ elog(ERROR, "function %s(oid) doesn't exist",
NameListToString(stmt->plvalidator));
}
else
@@ -162,7 +162,7 @@ DropProceduralLanguage(DropPLangStmt *stmt)
* Check permission
*/
if (!superuser())
- elog(ERROR, "Only users with Postgres superuser privilege are "
+ elog(ERROR, "Only users with superuser privilege are "
"permitted to drop procedural languages");
/*
@@ -177,10 +177,6 @@ DropProceduralLanguage(DropPLangStmt *stmt)
if (!HeapTupleIsValid(langTup))
elog(ERROR, "Language %s doesn't exist", languageName);
- if (!((Form_pg_language) GETSTRUCT(langTup))->lanispl)
- elog(ERROR, "Language %s isn't a created procedural language",
- languageName);
-
object.classId = get_system_catalog_relid(LanguageRelationName);
object.objectId = HeapTupleGetOid(langTup);
object.objectSubId = 0;
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 7fa570890d5..cc97c569ba5 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.124 2002/08/05 03:29:17 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.125 2002/08/13 17:22:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -74,7 +74,6 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
HeapTuple tuple;
Oid fargtypes[FUNC_MAX_ARGS];
Oid funcoid;
- Oid funclang;
Oid trigoid;
int found = 0;
int i;
@@ -207,24 +206,8 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
if (((Form_pg_proc) GETSTRUCT(tuple))->prorettype != 0)
elog(ERROR, "CreateTrigger: function %s() must return OPAQUE",
NameListToString(stmt->funcname));
- funclang = ((Form_pg_proc) GETSTRUCT(tuple))->prolang;
ReleaseSysCache(tuple);
- if (funclang != ClanguageId && funclang != INTERNALlanguageId)
- {
- HeapTuple langTup;
-
- langTup = SearchSysCache(LANGOID,
- ObjectIdGetDatum(funclang),
- 0, 0, 0);
- if (!HeapTupleIsValid(langTup))
- elog(ERROR, "CreateTrigger: cache lookup for language %u failed",
- funclang);
- if (((Form_pg_language) GETSTRUCT(langTup))->lanispl == false)
- elog(ERROR, "CreateTrigger: only internal, C and PL functions are supported");
- ReleaseSysCache(langTup);
- }
-
/*
* Build the new pg_trigger tuple.
*/
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 1b2e0d9ef26..7e3204c5c0e 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.60 2002/06/20 20:29:39 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.61 2002/08/13 17:22:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -324,6 +324,7 @@ fmgr_info_other_lang(Oid functionId, FmgrInfo *finfo, HeapTuple procedureTuple)
Oid language = procedureStruct->prolang;
HeapTuple languageTuple;
Form_pg_language languageStruct;
+ FmgrInfo plfinfo;
languageTuple = SearchSysCache(LANGOID,
ObjectIdGetDatum(language),
@@ -332,27 +333,19 @@ fmgr_info_other_lang(Oid functionId, FmgrInfo *finfo, HeapTuple procedureTuple)
elog(ERROR, "fmgr_info: cache lookup for language %u failed",
language);
languageStruct = (Form_pg_language) GETSTRUCT(languageTuple);
- if (languageStruct->lanispl)
- {
- FmgrInfo plfinfo;
- fmgr_info(languageStruct->lanplcallfoid, &plfinfo);
- finfo->fn_addr = plfinfo.fn_addr;
+ fmgr_info(languageStruct->lanplcallfoid, &plfinfo);
+ finfo->fn_addr = plfinfo.fn_addr;
+
+ /*
+ * If lookup of the PL handler function produced nonnull fn_extra,
+ * complain --- it must be an oldstyle function! We no longer
+ * support oldstyle PL handlers.
+ */
+ if (plfinfo.fn_extra != NULL)
+ elog(ERROR, "fmgr_info: language %u has old-style handler",
+ language);
- /*
- * If lookup of the PL handler function produced nonnull fn_extra,
- * complain --- it must be an oldstyle function! We no longer
- * support oldstyle PL handlers.
- */
- if (plfinfo.fn_extra != NULL)
- elog(ERROR, "fmgr_info: language %u has old-style handler",
- language);
- }
- else
- {
- elog(ERROR, "fmgr_info: function %u: unsupported language %u",
- functionId, language);
- }
ReleaseSysCache(languageTuple);
}