aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-11-14 17:40:56 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-11-14 17:40:56 +0000
commit4f38b9a80acdc9514ab03a912e275f6d84319597 (patch)
treea53a621bf06a27c8a315982641728fa327244835
parent1a0bbc296c7534df9b3545f899aa7a0fb0c87f16 (diff)
downloadpostgresql-4f38b9a80acdc9514ab03a912e275f6d84319597.tar.gz
postgresql-4f38b9a80acdc9514ab03a912e275f6d84319597.zip
Make CREATE CONVERSION verify that a putative encoding conversion function
returns VOID. This is the last of the easy fixes I recommended in 11870.1218838360@sss.pgh.pa.us --- the others got done awhile ago but I forgot about this one.
-rw-r--r--src/backend/commands/conversioncmds.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c
index 9d096141a42..8f823e6e2e9 100644
--- a/src/backend/commands/conversioncmds.c
+++ b/src/backend/commands/conversioncmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.35 2008/06/19 00:46:04 alvherre Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.36 2008/11/14 17:40:56 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -82,6 +82,13 @@ CreateConversionCommand(CreateConversionStmt *stmt)
funcoid = LookupFuncName(func_name, sizeof(funcargs) / sizeof(Oid),
funcargs, false);
+ /* Check it returns VOID, else it's probably the wrong function */
+ if (get_func_rettype(funcoid) != VOIDOID)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
+ errmsg("encoding conversion function %s must return type \"void\"",
+ NameListToString(func_name))));
+
/* Check we have EXECUTE rights for the function */
aclresult = pg_proc_aclcheck(funcoid, GetUserId(), ACL_EXECUTE);
if (aclresult != ACLCHECK_OK)