> Yeah, exactly.  ExecInitExpr builds an ExprState tree that mirrors the
> structure of the Expr tree but contains all the run-time-variable data.
> This tree is what's now being passed to ExecQual.

I see, and ExecInitExpr wraps the OpExpr in an FuncExprState.

Is it possible to store the calculated logical value of certain expressions, 
e.g. boolean OpExprs, in their ExprState on a per tuple basis to reuse them 
(I guess I described some kind of 'condition cache' here.)

> The problem is that outfuncs.c knows about all the Expr node types and
> none of the ExprState types, there being no need to dump the latter in
> normal use.  There is a valid argument that we ought to support dumping
> PlanState and ExprState trees for debugging purposes, but it just seems
> like more maintenance effort than it's worth ...

I don't know how often these ExprState nodes really change and how much 
maintenance they require, but I get your point.

> > (Is there a way do get this type info with gdb's help?)
> "p *(Node *) ptr" ought to do it.

Thanks, that works.


---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to