Where the Quals are actually 'List'ed
Hi,
I find that ExecInitExpr creates a ExprState tree (and so say the
comments above the function in the source). Also, it seems to decide
which function would get called when the expression is to be evaluated
when ExecQual runs, by setting the function pointer, for example:
bstate->xprstate.evalfunc = (ExprStateEvalFunc)ExecEvalAnd;
But ExecQual goes through a List, whereas, ExecInitExpr creates a tree.
So is that same tree converted to a qual list or are we adding some more
information.
Vaibhav (*_*)
Vaibhav Kaushal <vaibhavkaushal123@gmail.com> writes:
Hi,
I find that ExecInitExpr creates a ExprState tree (and so say the
comments above the function in the source). Also, it seems to decide
which function would get called when the expression is to be evaluated
when ExecQual runs, by setting the function pointer, for example:
bstate->xprstate.evalfunc = (ExprStateEvalFunc)ExecEvalAnd;
But ExecQual goes through a List, whereas, ExecInitExpr creates a tree.
So is that same tree converted to a qual list or are we adding some more
information.
ExecInitExpr produces a List of state trees from a List of expr trees
--- look at the last case in its switch.
regards, tom lane
On Mon, 2011-02-07 at 11:16 -0500, Tom Lane wrote:
Vaibhav Kaushal <vaibhavkaushal123@gmail.com> writes:
Hi,
I find that ExecInitExpr creates a ExprState tree (and so say the
comments above the function in the source). Also, it seems to decide
which function would get called when the expression is to be evaluated
when ExecQual runs, by setting the function pointer, for example:bstate->xprstate.evalfunc = (ExprStateEvalFunc)ExecEvalAnd;
But ExecQual goes through a List, whereas, ExecInitExpr creates a tree.
So is that same tree converted to a qual list or are we adding some more
information.ExecInitExpr produces a List of state trees from a List of expr trees --- look at the last case in its switch.regards, tom lane
Thanks a lot for the help sir. Got the point :)
-Vaibhav(*_*)