Thread: 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(*_*)