Hello

I found some strange code. Is code in "ELSE" part dead, or its bug?

        if (stmt->returnType)
        {
                /* explicit RETURNS clause */
                compute_return_type(stmt->returnType, languageOid,
                                                        &prorettype, 
&returnsSet);
                if (OidIsValid(requiredResultType) && prorettype != 
requiredResultType)
                        ereport(ERROR,
                                        
(errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
                                         errmsg("function result type must be 
%s because of OUT parameters",
                                                        
format_type_be(requiredResultType))));
        }
        else if (OidIsValid(requiredResultType))
        {
                /* default RETURNS clause from OUT parameters */
                prorettype = requiredResultType;
                returnsSet = false;
        }
        else
        {
                ereport(ERROR,
                                (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION),
                                 errmsg("function result type must be 
specified")));
                /* Alternative possibility: default to RETURNS VOID */

/* WHY FOLOWING LINES? */
                prorettype = VOIDOID;
                returnsSet = false;
        }

Regards
Pavel

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to