On Mon, Sep 28, 2020 at 7:15 AM Tom Lane <t...@sss.pgh.pa.us> wrote:

> Andy Fan <zhihui.fan1...@gmail.com> writes:
> > On Mon, Sep 28, 2020 at 4:46 AM David Rowley <dgrowle...@gmail.com>
> wrote:
> >> Thanks for showing an interest in partition pruning. Unfortunately,
> >> it's not possible to use stable functions to prune partitions during
> >> planning.
>
> > Sigh.. I understand you now, I ignored the plan can be cached for later
> use.
> > Without that,  we should be able to prune with stable function.
>
> No, that's still wrong.  The contract for a stable function is that
> its result won't change over execution of a single query; but that
> says *execution*, not *planning and execution*.
>
> In particular, the canonical example of a stable function is one
> whose result depends on a database query.  The reason it can be
> considered stable is that within a single outer query, the MVCC
> snapshot it's used with won't change.  But we take a new snapshot
> (later than the planner's snapshot) when beginning execution.
>
> Somebody (Robert Haas, if memory serves, which it might not)
> tried to change that a few years ago.  It blew up pretty well,
> and was eventually reverted, because of undesirable side-effects
> on user-visible query semantics.  You'd have to check the archives
> for details.
>
> It's possible that we could make that work differently in serializable
> mode, thanks to the longer persistence of snapshots.  Not sure that
> it'd be desirable for planning to work differently in serializable
> mode, though.
>
>                         regards, tom lane
>

Well, that's very interesting.  Specific to my user case,
SELECT * FROM p WHERE pkey = to_date('2018-12-13', 'yyyy-mm-dd)';
p has 1500+ partitions and planning takes lots of time, which is so same
with SELECT * FROM p WHERE pkey = '2018-12-13',  however the planning
time difference is so huge, that doesn't make sense in human view.  Can
we do something for that?  to_date(text, text) should be a "immutable"
function
IMO.  Does that have a semantic issue or other issues?


-- 
Best Regards
Andy Fan

Reply via email to