summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-12-07 19:40:56 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-12-07 19:40:56 +0000
commitcbc5f4f127f37510fa000ddd8a109c8385796176 (patch)
tree2ae0813bbe74b2fab6ced3e5a39bb39f1dc181b4 /src
parent821f4673ffa53ddfb792cbf646783037dd6796ca (diff)
downloadpostgresql-cbc5f4f127f37510fa000ddd8a109c8385796176.tar.gz
checkretval() failed to cope with an empty SQL function body.
Diffstat (limited to 'src')
-rw-r--r--src/backend/catalog/pg_proc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 5d63ebf161..1e594bfe25 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.51 2000/11/20 20:36:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.52 2000/12/07 19:40:56 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -339,6 +339,15 @@ checkretval(Oid rettype, List *queryTreeList)
int relnatts;
int i;
+ /* guard against empty function body; OK only if no return type */
+ if (queryTreeList == NIL)
+ {
+ if (rettype != InvalidOid)
+ elog(ERROR, "function declared to return %s, but no SELECT provided",
+ typeidTypeName(rettype));
+ return;
+ }
+
/* find the final query */
parse = (Query *) nth(length(queryTreeList) - 1, queryTreeList);