Thread: Where the Quals are actually 'List'ed

Where the Quals are actually 'List'ed

From
Vaibhav Kaushal
Date:
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 (*_*)



Re: Where the Quals are actually 'List'ed

From
Tom Lane
Date:
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


Re: Where the Quals are actually 'List'ed

From
Vaibhav Kaushal
Date:
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(*_*)