čt 15. 10. 2020 v 20:17 odesílatel Tom Lane <t...@sss.pgh.pa.us> napsal:

> Pavel Stehule <pavel.steh...@gmail.com> writes:
> > I am playing with fixing the speed of CALL statement in a non atomic
> > context, and when I tested my patch I found another issue of CALL
> statement
> > - an invalidation of plans doesn't work for CALL statement (in atomic
> > context).
>
> Yeah, that's not the plancache's fault.  CALL doesn't register any
> dependencies for the parsed expression it keeps in its parsetree.
>
> I remain of the opinion that we need to decide whether CALL is
> a utility command or an optimizable statement, and then make it
> follow the relevant set of rules.  It can't live halfway between,
> especially not when none of the required infrastructure has been
> built to allow it to act like an optimizable statement.  (Hm,
> I could swear we discussed this before, but searching the archives
> doesn't immediately turn up the thread.  Anyway, you don't get to
> do parse analysis in advance of execution when you are a utility
> command.)
>
> Probably the only feasible fix for the back branches is to go in the
> utility-command direction, which means ripping out the pre-parsed
> expression in CallStmt.  Somebody could look at making it act like an
> optimizable statement in the future; but that'll involve touching a
> nontrivial amount of code, and I'm not sure how much performance it'll
> really buy.
>

Maybe I wrote necessary code (or some part) for LET statement

https://commitfest.postgresql.org/30/1608/

Anyway, I think another related issue will be in work with optimized
(cached) target.



>                         regards, tom lane
>

Reply via email to