postgresql/src/include/optimizer
David Rowley c2dc7b9e15 Flush Memoize cache when non-key parameters change, take 2
It's possible that a subplan below a Memoize node contains a parameter
from above the Memoize node.  If this parameter changes then cache entries
may become out-dated due to the new parameter value.

Previously Memoize was mistakenly not aware of this.  We fix this here by
flushing the cache whenever a parameter that's not part of the cache
key changes.

Bug: #17213
Reported by: Elvis Pranskevichus
Author: David Rowley
Discussion: https://postgr.es/m/17213-988ed34b225a2862@postgresql.org
Backpatch-through: 14, where Memoize was added
2021-11-24 23:29:56 +13:00
..
appendinfo.h Rework planning and execution of UPDATE and DELETE. 2021-03-31 11:52:37 -04:00
clauses.h Flush Memoize cache when non-key parameters change, take 2 2021-11-24 23:29:56 +13:00
cost.h Change the name of the Result Cache node to Memoize 2021-07-14 12:45:00 +12:00
geqo.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_copy.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_gene.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_misc.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_mutation.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_pool.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_random.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_recombination.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
geqo_selection.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
inherit.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
joininfo.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
optimizer.h Reconsider the handling of procedure OUT parameters. 2021-06-10 17:11:36 -04:00
orclauses.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
paramassign.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pathnode.h Allow Memoize to operate in binary comparison mode 2021-11-24 10:07:38 +13:00
paths.h Rename find_em_expr_usable_for_sorting_rel. 2021-04-20 11:37:36 -04:00
placeholder.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
plancat.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
planmain.h Fix pull_varnos' miscomputation of relids set for a PlaceHolderVar. 2021-01-21 15:37:23 -05:00
planner.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
prep.h Fix mishandling of resjunk columns in ON CONFLICT ... UPDATE tlists. 2021-05-10 11:02:29 -04:00
restrictinfo.h Fix pull_varnos' miscomputation of relids set for a PlaceHolderVar. 2021-01-21 15:37:23 -05:00
subselect.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
tlist.h Fix planner failure in some cases of sorting by an aggregate. 2021-04-20 11:32:02 -04:00