aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2021-11-24 15:27:43 +1300
committerDavid Rowley <drowley@postgresql.org>2021-11-24 15:27:43 +1300
commitdad20ad4709f602b4827a1ab2b0e715f36c548c3 (patch)
treea6c96abbe3eae534d938d05539627b4f03d23f62 /src/backend/executor
parent1050048a315790a505465bfcceb26eaf8dbc7e2e (diff)
downloadpostgresql-dad20ad4709f602b4827a1ab2b0e715f36c548c3.tar.gz
postgresql-dad20ad4709f602b4827a1ab2b0e715f36c548c3.zip
Revert "Flush Memoize cache when non-key parameters change"
This reverts commit 1050048a315790a505465bfcceb26eaf8dbc7e2e.
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/nodeMemoize.c38
1 files changed, 0 insertions, 38 deletions
diff --git a/src/backend/executor/nodeMemoize.c b/src/backend/executor/nodeMemoize.c
index 31e39722239..683502dd90e 100644
--- a/src/backend/executor/nodeMemoize.c
+++ b/src/backend/executor/nodeMemoize.c
@@ -368,37 +368,6 @@ remove_cache_entry(MemoizeState *mstate, MemoizeEntry *entry)
}
/*
- * cache_purge_all
- * Remove all items from the cache
- */
-static void
-cache_purge_all(MemoizeState *mstate)
-{
- uint64 evictions = mstate->hashtable->members;
- PlanState *pstate = (PlanState *) mstate;
-
- /*
- * Likely the most efficient way to remove all items is to just reset the
- * memory context for the cache and then rebuild a fresh hash table. This
- * saves having to remove each item one by one and pfree each cached tuple
- */
- MemoryContextReset(mstate->tableContext);
-
- /* Make the hash table the same size as the original size */
- build_hash_table(mstate, ((Memoize *) pstate->plan)->est_entries);
-
- /* reset the LRU list */
- dlist_init(&mstate->lru_list);
- mstate->last_tuple = NULL;
- mstate->entry = NULL;
-
- mstate->mem_used = 0;
-
- /* XXX should we add something new to track these purges? */
- mstate->stats.cache_evictions += evictions; /* Update Stats */
-}
-
-/*
* cache_reduce_memory
* Evict older and less recently used items from the cache in order to
* reduce the memory consumption back to something below the
@@ -1010,7 +979,6 @@ ExecInitMemoize(Memoize *node, EState *estate, int eflags)
* getting the first tuple. This allows us to mark it as so.
*/
mstate->singlerow = node->singlerow;
- mstate->keyparamids = node->keyparamids;
/*
* Record if the cache keys should be compared bit by bit, or logically
@@ -1114,12 +1082,6 @@ ExecReScanMemoize(MemoizeState *node)
if (outerPlan->chgParam == NULL)
ExecReScan(outerPlan);
- /*
- * Purge the entire cache if a parameter changed that is not part of the
- * cache key.
- */
- if (bms_nonempty_difference(outerPlan->chgParam, node->keyparamids))
- cache_purge_all(node);
}
/*