diff options
author | Tom Lane | 2008-11-14 17:40:56 +0000 |
---|---|---|
committer | Tom Lane | 2008-11-14 17:40:56 +0000 |
commit | fe568aed783bdb4d4a7e32bfd0ce255c9d6b581a (patch) | |
tree | 614e0d541d96e845ddf0e438f856f27e1e05f19b | |
parent | b483786c829be1f3f4df754739e3a0ed343338ad (diff) |
Make CREATE CONVERSION verify that a putative encoding conversion function
returns VOID. This is the last of the easy fixes I recommended in
[email protected] --- the others got done awhile ago but
I forgot about this one.
-rw-r--r-- | src/backend/commands/conversioncmds.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c index 2ab0759b4d..c26811ef45 100644 --- a/src/backend/commands/conversioncmds.c +++ b/src/backend/commands/conversioncmds.c @@ -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) |