On Tuesday 07 December 2010 20:17:57 Jan Urbański wrote:
> Hi,
> 
> no, no patch(es) yet. I'm going through plpython.c trying as best I can
> to improve things there. I'll have a patch (or patches) ready for the
> January commitfest, but I thought I'd open up a discussion already to
> spare me having to redo features because the way I attacked the problem
> is a dead end. Be warned, this ended up being a very long email...
Nice to see improvements there.

> Currently the improvements are:
>  * execute SPI calls in a subtransaction, report errors back to Python
> as exceptions that can be caught etc.
Youre doing that unconditionally? I think the performance impact of this will 
be too severe... Subtransactions can get quite expensive - especially in the 
face of HS.

>  * remove volatile modifiers from variables (AIUI they are completely
> not necessary anywhere in plpython.c)
I havent read the code recently but they might be needed for local variables 
changed inside a PG_TRY catching an error and also accessed in the CATCH block 
or afterwards if youre not rethrowing.

See the man page of longjmp.

>  * explicit subxact starting, so you can issue consecutive plpy.execute
> calls atomically
That likely obsoletes my comment from above.

>  * split plpython.c into smaller modules, like plpython_traceback.c,
> plpython_type_conversion.c, plpython_plpy.c etc.
>  * variadic argument handling (is this possible for a non-plpgsql pl?)
>  * multiple OUT parameters support (a TODO item, I think "table function
> support" meant to say that)
>  * add a DB-API interface on top of SPI (a TODO item)
I am not hot on that as dbapi simply is too unspecified in too many areas 
(prepared statements anyone).

Thanks,

Andres

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to