Catch exception from plpy

Поиск
Список
Период
Сортировка
От dario.ber@libero.it
Тема Catch exception from plpy
Дата
Msg-id 32426425.1630381272113313707.JavaMail.defaultUser@defaultHost
обсуждение исходный текст
Ответы Re: Catch exception from plpy  (Martin Gainty <mgainty@hotmail.com>)
Список pgsql-general
Hello,

Could someone show me how to catch exceptions generated by plpy.execute()?
From the documentation and other posts I understand that you need to call plpy.
error() but I still cannot figure out how to use it.

For example, say I need a function that creates table foo if it doesn't
exists, otherwise returns the rows in foo. Initially I thought the following
shouldl work... but it doesn't!

--
create or replace function test_tryex() returns void AS $$
    try:
        plpy.execute('create table tmp_foo (v1 int);')
    except:
        plpy.execute('select * from tmp_foo;')
    $$
language plpythonu;
--
-- If tmp_foo already exists I get:
select test_tryex();

********** Error **********

ERROR: relation "tmp_foo" already exists
SQL state: 42P07
Context: SQL statement "create table tmp_foo (v1 int);"


Many thanks in advance
Dario

В списке pgsql-general по дате отправления:

Предыдущее
От: dipti shah
Дата:
Сообщение: Syntax error in spi_prepare usage
Следующее
От: Martin Gainty
Дата:
Сообщение: Re: Catch exception from plpy