Save a few cycles in plpgsql simple-expression initialization.
Instead of using ExecPrepareExpr, call ExecInitExpr. The net change here is that we don't apply expression_planner() to the expression tree. There is no need to do so, because that tree is extracted from a fully planned plancache entry, so all the needed work is already done. This reduces the setup costs by about a factor of 2 according to some simple tests. Oversight noted while fooling around with the simple-expression code for previous fix.
This commit is contained in:
parent
8ce22dd4c5
commit
37e0a01654
@ -4577,10 +4577,11 @@ exec_eval_simple_expr(PLpgSQL_execstate *estate,
|
||||
*/
|
||||
if (expr->expr_simple_lxid != curlxid)
|
||||
{
|
||||
expr->expr_simple_state = ExecPrepareExpr(expr->expr_simple_expr,
|
||||
simple_eval_estate);
|
||||
oldcontext = MemoryContextSwitchTo(simple_eval_estate->es_query_cxt);
|
||||
expr->expr_simple_state = ExecInitExpr(expr->expr_simple_expr, NULL);
|
||||
expr->expr_simple_in_use = false;
|
||||
expr->expr_simple_lxid = curlxid;
|
||||
MemoryContextSwitchTo(oldcontext);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user