Skip site navigation (1) Skip section navigation (2)

Re: why does plperl cache functions using just a bool for is_trigger

From: Hannu Krosing <hannu(at)2ndQuadrant(dot)com>
To: Jan Urbański <wulczer(at)wulczer(dot)org>
Cc: Alex Hunsaker <badalex(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Postgres - Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: why does plperl cache functions using just a bool for is_trigger
Date: 2010-11-04 09:46:10
Message-ID: 1288863970.2686.17.camel@hvost (view raw or flat)
Thread:
Lists: pgsql-hackers
On Wed, 2010-11-03 at 21:43 +0100, Jan Urbański wrote:
> The validator is ready, once I'm done with the hash tables I'll try to
> fix up the error checking (get rid of the global error state) and
> finally do what started it all, that is make plpythonu use
> subtransactions for SPI and be able to do:
> 
> try:
>     plpy.execute("insert into foo values(1)")
> except plpy.UniqueViolation, e:
>     plpy.notice("Ooops, you got yourself a SQLSTATE %d", e.sqlstate)

Are you sure that having each try/except use a subtransaction is the
right way to do it ?

I'd like to make it more explicit and use 

with plpy.subtransaction():
    do your stuff

adding subtransactions to try/except would also act differently on
postgresql and python data, that is things in postgresql tables would
get rolled back but those made to python would not 

or at least make the "rollback to savepoint x" optional

try:
    plpy.savepoint('sp1')
    for i in range(-5,5)
        plpy.execute("insert into foo values(%s)", [abs(10/i)])
except plpy.UniqueViolation, e:
    plpy.rollback('sp1')
    plpy.notice("Ooops, you got yourself a SQLSTATE %d", e.sqlstate)
except ZeroDivisionError:
    plpy.notice("Only some values were inserted")



-------
Hannu Krosing
PostgreSQL Infinite Scalability and Preformance Consultant
PG Admin Book: http://www.2ndQuadrant.com/books/



In response to

Responses

pgsql-hackers by date

Next:From: Hannu KrosingDate: 2010-11-04 09:54:45
Subject: Re: why does plperl cache functions using just a bool for is_trigger
Previous:From: Itagaki TakahiroDate: 2010-11-04 09:22:52
Subject: Re: SQL/MED estimated time of arrival?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group