diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-12-07 19:40:56 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-12-07 19:40:56 +0000 |
| commit | cbc5f4f127f37510fa000ddd8a109c8385796176 (patch) | |
| tree | 2ae0813bbe74b2fab6ced3e5a39bb39f1dc181b4 /src | |
| parent | 821f4673ffa53ddfb792cbf646783037dd6796ca (diff) | |
| download | postgresql-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.c | 11 |
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); |
