Thread: basics on User Defined Functions

basics on User Defined Functions

From
Dennis Gearon
Date:
Is this the correct way to return values in a record from a UDF in 7.4.+ ?

Is it ok to modify the arguments as in 'arg_int'?

-- return type should be RECORD
--
CREATE OR REPLACE FUNCTION test_function( int )
RETURNS RECORD AS '
DECLARE

    arg_int               ALIAS FOR $1;

    var_record_out          record;
    var_message_out         text;

BEGIN

    var_message_out := ''This was successful'';
    arg_int := rg_int * 3;

    SELECT INTO var_record_out
        :arg_int AS intX3,
        :var_message_out AS message;
    RETURN var_record_out;
END;
' LANGUAGE 'plpgsql';

Re: basics on User Defined Functions

From
Gaetano Mendola
Date:
Dennis Gearon wrote:
> Is this the correct way to return values in a record from a UDF in 7.4.+ ?
>
> Is it ok to modify the arguments as in 'arg_int'?
>
> -- return type should be RECORD
> --
> CREATE OR REPLACE FUNCTION test_function( int )
> RETURNS RECORD AS ' DECLARE
>
>    arg_int               ALIAS FOR $1;
>
>    var_record_out          record;
>    var_message_out         text;
>
> BEGIN
>
>    var_message_out := ''This was successful'';
>    arg_int := rg_int * 3;
>
>    SELECT INTO var_record_out        :arg_int AS intX3,
>        :var_message_out AS message;
>    RETURN var_record_out;
> END;
> ' LANGUAGE 'plpgsql';

Did you execute it ?

rg_int is not declared, may be is a typo for arg_int; however
you can not modify the argument function.

Is it an homework ?



Regards
Gaetano Mendola