pgsql-server/src/pl/plpgsql/src pl_exec.c pl_h ... - Mailing list pgsql-committers

From tgl@svr1.postgresql.org (Tom Lane)
Subject pgsql-server/src/pl/plpgsql/src pl_exec.c pl_h ...
Date
Msg-id 20030928233745.DCDD2D1B522@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@svr1.postgresql.org    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.


pgsql-committers by date:

Previous
From: tgl@svr1.postgresql.org (Tom Lane)
Date:
Subject: pgsql-server/src include/access/xact.h backend ...
Next
From: Hiroshi Inoue
Date:
Subject: Re: pgsql-server/src/backend catalog/index.c comma ...