From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org, Paul Ramsey <pramsey(at)cleverelephant(dot)ca> |
Subject: | Re: Inlining functions with "expensive" parameters |
Date: | 2017-11-16 20:27:59 |
Message-ID: | 8764.1510864079@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> On November 16, 2017 11:44:52 AM PST, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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.
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.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-11-16 20:29:08 | Re: [HACKERS] ginInsertCleanup called from vacuum could still miss tuples to be deleted |
Previous Message | Robert Haas | 2017-11-16 20:12:06 | Re: [HACKERS] Issues with logical replication |