CVSROOT:        /cvsroot
Module name:    pgsql-server
Changes by:     [EMAIL PROTECTED]       03/09/28 20:37:45

Modified files:
        src/pl/plpgsql/src: pl_exec.c pl_handler.c plpgsql.h 

Log message:
        Restructure plpgsql's caching of 'simple' expression evaluation trees
        to be less dangerous, and often faster as well.  ExprState trees are
        not kept across transaction boundaries; this eliminates problems with
        resource leakage in failed transactions.  But by keeping them in a
        per-transaction EState, we can safely arrange for a single ExprState
        to be shared by all the expression evaluations done in a given plpgsql
        function call.  (Formerly it seemed necessary to create and destroy an
        ExprState for each exec_eval_simple_expr() call.)  This saves time in
        any scenario where a plpgsql function executes more than one expression.
        Seems to be about as fast as 7.3 for simple cases, and significantly
        faster for functions that do a lot of calculations.


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to