Thread: Questions about functions...

Questions about functions...

From
"Bob Whitehouse"
Date:
If I write a function that deletes a record from a table, how do I access
the output from the delete operation to see if it completed successfully?
Check out the IF statement below.

CREATE FUNCTION del_test(INT4)
        RETURNS INT4
        AS 'DECLARE
                int_input         ALIAS FOR $1;
                int_success    INT4;

            BEGIN
                int_success := 0;
                DELETE FROM table WHERE id = int_input;
                IF (output from delete operation = 1) THEN
                    int_success := 1
                END IF;
            RETURN int_success;
            END;'
LANGUAGE 'plpgsql';

I'm also wondering if I need to be able to trap an error and rollback the
state of the database. If so, how would I do it?
I've seen it done like this in other databases before:

EXEC SQL WHENEVER SQLERROR ROLLBACK ABORT;

Thanks, Bob