RAISE with C?

From: Elliot Chance <elliotchance(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: RAISE with C?
Date: 2010-12-20 08:10:52
Message-ID: D0427C33-CE68-4457-9F5A-368A6A386A00@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

Is it possible to do the equivalent of RAISE EXCEPTION inside a C-function? Like this:

PG_FUNCTION_INFO_V1(check_something);
Datum check_something(PG_FUNCTION_ARGS)
{
// RAISE EXCEPTION 'bla bla'
}

CREATE OR REPLACE FUNCTION do_check() RETURNS text AS $$
BEGIN
PERFORM check_something();
RETURN 'All good';
EXCEPTION
WHEN RAISE EXCEPTION THEN
RETURN 'Something bad';
END;
$$ LANGUAGE plpgsql IMMUTABLE;

That code may not work but you get the idea, I want to throw an exception from a C function that can be caught in PL/pgSQL. Also is it further possible to catch the message that RAISE EXCEPTION sends? Like 'Something bad: bla bla'

Thanks,
Elliot

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Pavel Stehule 2010-12-20 08:14:29 Re: RAISE with C?
Previous Message tbazadaykin 2010-12-20 06:00:50 Re: Need More Case Studies on PostGIS