pgsql-server/src/pl/plpgsql/src pl_exec.c pl_h ...
От
tgl@svr1.postgresql.org (Tom Lane)
Тема
pgsql-server/src/pl/plpgsql/src pl_exec.c pl_h ...
Дата
Msg-id
20030928233745.DCDD2D1B522@svr1.postgresql.org
Список
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 по дате отправления
От: tgl@svr1.postgresql.org (Tom Lane)
Дата: