postgresql/src/backend
David Rowley 1050048a31 Flush Memoize cache when non-key parameters change
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 14:56:18 +13:00
..
access Be more specific about OOM in XLogReaderAllocate 2021-11-22 13:43:43 -03:00
bootstrap Fix bogus assertion in BootstrapModeMain(). 2021-08-09 08:28:53 -07:00
catalog Add SQL functions to monitor the directory contents of replication slots 2021-11-23 19:29:42 +09:00
commands Allow Memoize to operate in binary comparison mode 2021-11-24 10:06:59 +13:00
executor Flush Memoize cache when non-key parameters change 2021-11-24 14:56:18 +13:00
foreign Improve HINT message that FDW reports when there are no valid options. 2021-10-27 00:46:52 +09:00
jit Avoid some other O(N^2) hazards in list manipulation. 2021-11-01 16:24:39 -04:00
lib Fix typo in comment 2021-04-20 14:35:16 +02:00
libpq Provide a variant of simple_prompt() that can be interrupted by ^C. 2021-11-17 19:09:54 -05:00
main process startup: Split single user code out of PostgresMain(). 2021-09-17 19:56:47 -07:00
nodes Flush Memoize cache when non-key parameters change 2021-11-24 14:56:18 +13:00
optimizer Flush Memoize cache when non-key parameters change 2021-11-24 14:56:18 +13:00
parser Rename some enums to use TABLE instead of REL. 2021-11-09 08:39:33 +05:30
partitioning Fix duplicate words in comments 2021-10-04 15:12:57 +02:00
po Translation updates 2021-06-21 12:33:50 +02:00
port windows: Remove use of WIN32_LEAN_AND_MEAN from crashdump.c. 2021-11-06 15:43:22 -07:00
postmaster autovacuum: Improve wording in a couple places 2021-11-22 12:55:36 -03:00
regex Make pg_regexec() robust against out-of-range search_start. 2021-09-11 15:19:31 -04:00
replication Be more specific about OOM in XLogReaderAllocate 2021-11-22 13:43:43 -03:00
rewrite Fix rewriter to set hasModifyingCTE correctly on rewritten queries. 2021-09-08 12:05:47 -04:00
snowball Update snowball 2021-02-19 08:10:15 +01:00
statistics Clean up more code using "(expr) ? true : false" 2021-10-11 09:36:42 +09:00
storage Fix parallel operations that prevent oldest xmin from advancing. 2021-11-19 09:04:40 +05:30
tcop Add pg_checkpointer predefined role for CHECKPOINT command. 2021-11-09 16:59:14 -08:00
tsearch Clean up more code using "(expr) ? true : false" 2021-10-11 09:36:42 +09:00
utils Allow Memoize to operate in binary comparison mode 2021-11-24 10:06:59 +13:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Use sort_template.h for qsort_tuple() and qsort_ssup(). 2021-03-03 17:02:32 +13:00
nls.mk Report progress of startup operations that take a long time. 2021-10-25 11:51:57 -04:00