postgresql/src/include
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
..
access Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions. 2021-10-23 18:36:42 -07:00
bootstrap Update copyright for 2021 2021-01-02 13:06:25 -05:00
catalog Fix WAL replay in presence of an incomplete record 2021-09-29 11:41:01 -03:00
commands Don't overlook indexes during parallel VACUUM. 2021-11-02 12:06:16 -07:00
common Revert refactoring of hex code to src/common/ 2021-08-19 09:20:19 +09:00
datatype Update copyright for 2021 2021-01-02 13:06:25 -05:00
executor Fix checking of query type in plpgsql's RETURN QUERY command. 2021-10-03 13:21:20 -04:00
fe_utils psql: Refine lexing of BEGIN...END blocks in CREATE FUNCTION statements 2021-04-16 12:20:23 +02:00
foreign Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
jit jit: Do not try to shut down LLVM state in case of LLVM triggered errors. 2021-09-13 18:15:28 -07:00
lib Fix frontend version of sh_error() in simplehash.h. 2021-10-22 16:43:38 -04:00
libpq Reject extraneous data after SSL or GSS encryption handshake. 2021-11-08 11:01:43 -05:00
mb Fix incautious handling of possibly-miscoded strings in client code. 2021-06-07 14:15:25 -04:00
nodes Flush Memoize cache when non-key parameters change, take 2 2021-11-24 23:29:56 +13:00
optimizer Flush Memoize cache when non-key parameters change, take 2 2021-11-24 23:29:56 +13:00
parser Disable anonymous record hash support except in special cases 2021-09-08 09:55:18 +02:00
partitioning Fix relcache inconsistency hazard in partition detach 2021-04-22 15:13:25 -04:00
port Get rid of artificial restriction on hash table sizes on Windows. 2021-07-25 14:02:27 -04:00
portability Fix another portability bug in recent pgbench commit. 2021-03-10 23:20:41 +13:00
postmaster Remove temporary files after backend crash 2021-03-18 17:38:28 +01:00
regex Improve memory management in regex compiler. 2021-02-26 13:52:10 -05:00
replication Reset properly snapshot export state during transaction abort 2021-10-18 11:56:48 +09:00
rewrite Adjust locations which have an incorrect copyright year 2021-06-04 12:19:50 +12:00
snowball Update snowball 2021-02-19 08:10:15 +01:00
statistics Extended statistics on expressions 2021-03-27 00:01:11 +01:00
storage Fix parallel operations that prevent oldest xmin from advancing. 2021-11-19 09:14:09 +05:30
tcop Centralize the logic for protective copying of utility statements. 2021-06-18 11:22:58 -04:00
tsearch Don't leak compiled regex(es) when an ispell cache entry is dropped. 2021-03-18 22:22:47 -04:00
utils Allow Memoize to operate in binary comparison mode 2021-11-24 10:07:38 +13:00
.gitignore Refactor dlopen() support 2018-09-06 11:33:04 +02:00
c.h Work around issues in MinGW-64's setjmp/longjmp support. 2021-03-15 12:34:17 -04:00
fmgr.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
funcapi.h Reconsider the handling of procedure OUT parameters. 2021-06-10 17:11:36 -04:00
getaddrinfo.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
getopt_long.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
Makefile Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
miscadmin.h Get rid of artificial restriction on hash table sizes on Windows. 2021-07-25 14:02:27 -04:00
pg_config.h.in Probe for preadv/pwritev in a more macOS-friendly way. 2021-07-12 19:17:35 -04:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Rename debug_invalidate_system_caches_always to debug_discard_caches. 2021-07-13 15:01:01 -04:00
pg_getopt.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_trace.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pgstat.h Fix performance regression from session statistics. 2021-09-16 02:10:57 -07:00
pgtar.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pgtime.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
port.h Move bsearch_arg to src/port 2021-03-23 00:11:22 +01:00
postgres.h Fix misleading comments about TOAST access macros. 2021-09-08 14:11:35 -04:00
postgres_ext.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postgres_fe.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
rusagestub.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
windowapi.h Update copyright for 2021 2021-01-02 13:06:25 -05:00