On Thu, Nov 16, 2017 at 12:37 PM, Andres Freund <and...@anarazel.de> wrote:

> Hi,
>
> On 2017-11-16 15:27:59 -0500, Tom Lane wrote:
> > Andres Freund <and...@anarazel.de> writes:
> > > On November 16, 2017 11:44:52 AM PST, Tom Lane <t...@sss.pgh.pa.us>
> wrote:
> > >> Yeah, there's no mechanism like that now, but there could be.
> >
> > > Right, but it doesn't sound that hard to introduce. Basically there'd
> need to be a WithParamValue node,  that first evaluates parameters and then
> executes the child expression. I'm thinking of doing this hierarchically so
> there's less issues with the setting of the param value being moved away
> from the child expression using it.
> >
> > Yeah.  If you also gave it the ability to optionally enforce strictness
> > (ie, skip child expr and return NULL if any param is NULL) then we could
> > do away with all of the parameter-based restrictions on inlining, since
> > the semantics of parameter eval wouldn't change by inlining.
>
> Yep. And we quite easily can have a fastpath execution step that skips
> these checks if no needed.
>
> I suspect there might still be some cases where it's worth either using
> the current parameter replacement, or rely on eval_const_expressions
> based infrastructure to directly "inline" reference parameters if
> safe. The latter seems a bit nicer / more extensible.
>
>
> > I might be showing my grad school background here, but I'd be inclined to
> > call it a LambdaExpr.  A name based on "with" would be fine in a green
> > field, but IMO we've got too much baggage from nodes related to SQL WITH.
>
> That'd work as well for me.
>

Is there a github branch or an active patch set where this work is going on
that I could watch and learn from?
Thanks!
P


> Greetings,
>
> Andres Freund
>

Reply via email to