From: | peter(dot)trautmeier(at)gmx(dot)de |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: EXEC_EVALDEBUG debugging broken? |
Date: | 2007-07-25 12:20:38 |
Message-ID: | 20070725122038.323700@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Von: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
> 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 later?
(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.
Regards,
Peter
From | Date | Subject | |
---|---|---|---|
Next Message | peter.trautmeier | 2007-07-25 12:34:23 | Re: Design: Escort info from WHERE clause to executor? |
Previous Message | Magnus Hagander | 2007-07-25 10:43:30 | Re: Kerberos warnings on win32 |