aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/explain.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/explain.c')
-rw-r--r--src/backend/commands/explain.c65
1 files changed, 32 insertions, 33 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index e81b9900925..340db2bac4d 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -109,8 +109,8 @@ static void show_sort_info(SortState *sortstate, ExplainState *es);
static void show_incremental_sort_info(IncrementalSortState *incrsortstate,
ExplainState *es);
static void show_hash_info(HashState *hashstate, ExplainState *es);
-static void show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
- ExplainState *es);
+static void show_memoize_info(MemoizeState *mstate, List *ancestors,
+ ExplainState *es);
static void show_hashagg_info(AggState *hashstate, ExplainState *es);
static void show_tidbitmap_info(BitmapHeapScanState *planstate,
ExplainState *es);
@@ -1298,8 +1298,8 @@ ExplainNode(PlanState *planstate, List *ancestors,
case T_Material:
pname = sname = "Materialize";
break;
- case T_ResultCache:
- pname = sname = "Result Cache";
+ case T_Memoize:
+ pname = sname = "Memoize";
break;
case T_Sort:
pname = sname = "Sort";
@@ -2013,9 +2013,9 @@ ExplainNode(PlanState *planstate, List *ancestors,
case T_Hash:
show_hash_info(castNode(HashState, planstate), es);
break;
- case T_ResultCache:
- show_resultcache_info(castNode(ResultCacheState, planstate),
- ancestors, es);
+ case T_Memoize:
+ show_memoize_info(castNode(MemoizeState, planstate), ancestors,
+ es);
break;
default:
break;
@@ -3085,13 +3085,12 @@ show_hash_info(HashState *hashstate, ExplainState *es)
}
/*
- * Show information on result cache hits/misses/evictions and memory usage.
+ * Show information on memoize hits/misses/evictions and memory usage.
*/
static void
-show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
- ExplainState *es)
+show_memoize_info(MemoizeState *mstate, List *ancestors, ExplainState *es)
{
- Plan *plan = ((PlanState *) rcstate)->plan;
+ Plan *plan = ((PlanState *) mstate)->plan;
ListCell *lc;
List *context;
StringInfoData keystr;
@@ -3102,7 +3101,7 @@ show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
initStringInfo(&keystr);
/*
- * It's hard to imagine having a result cache with fewer than 2 RTEs, but
+ * It's hard to imagine having a memoize node with fewer than 2 RTEs, but
* let's just keep the same useprefix logic as elsewhere in this file.
*/
useprefix = list_length(es->rtable) > 1 || es->verbose;
@@ -3112,7 +3111,7 @@ show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
plan,
ancestors);
- foreach(lc, ((ResultCache *) plan)->param_exprs)
+ foreach(lc, ((Memoize *) plan)->param_exprs)
{
Node *expr = (Node *) lfirst(lc);
@@ -3138,23 +3137,23 @@ show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
if (!es->analyze)
return;
- if (rcstate->stats.cache_misses > 0)
+ if (mstate->stats.cache_misses > 0)
{
/*
* mem_peak is only set when we freed memory, so we must use mem_used
* when mem_peak is 0.
*/
- if (rcstate->stats.mem_peak > 0)
- memPeakKb = (rcstate->stats.mem_peak + 1023) / 1024;
+ if (mstate->stats.mem_peak > 0)
+ memPeakKb = (mstate->stats.mem_peak + 1023) / 1024;
else
- memPeakKb = (rcstate->mem_used + 1023) / 1024;
+ memPeakKb = (mstate->mem_used + 1023) / 1024;
if (es->format != EXPLAIN_FORMAT_TEXT)
{
- ExplainPropertyInteger("Cache Hits", NULL, rcstate->stats.cache_hits, es);
- ExplainPropertyInteger("Cache Misses", NULL, rcstate->stats.cache_misses, es);
- ExplainPropertyInteger("Cache Evictions", NULL, rcstate->stats.cache_evictions, es);
- ExplainPropertyInteger("Cache Overflows", NULL, rcstate->stats.cache_overflows, es);
+ ExplainPropertyInteger("Cache Hits", NULL, mstate->stats.cache_hits, es);
+ ExplainPropertyInteger("Cache Misses", NULL, mstate->stats.cache_misses, es);
+ ExplainPropertyInteger("Cache Evictions", NULL, mstate->stats.cache_evictions, es);
+ ExplainPropertyInteger("Cache Overflows", NULL, mstate->stats.cache_overflows, es);
ExplainPropertyInteger("Peak Memory Usage", "kB", memPeakKb, es);
}
else
@@ -3162,23 +3161,23 @@ show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
ExplainIndentText(es);
appendStringInfo(es->str,
"Hits: " UINT64_FORMAT " Misses: " UINT64_FORMAT " Evictions: " UINT64_FORMAT " Overflows: " UINT64_FORMAT " Memory Usage: " INT64_FORMAT "kB\n",
- rcstate->stats.cache_hits,
- rcstate->stats.cache_misses,
- rcstate->stats.cache_evictions,
- rcstate->stats.cache_overflows,
+ mstate->stats.cache_hits,
+ mstate->stats.cache_misses,
+ mstate->stats.cache_evictions,
+ mstate->stats.cache_overflows,
memPeakKb);
}
}
- if (rcstate->shared_info == NULL)
+ if (mstate->shared_info == NULL)
return;
/* Show details from parallel workers */
- for (int n = 0; n < rcstate->shared_info->num_workers; n++)
+ for (int n = 0; n < mstate->shared_info->num_workers; n++)
{
- ResultCacheInstrumentation *si;
+ MemoizeInstrumentation *si;
- si = &rcstate->shared_info->sinstrument[n];
+ si = &mstate->shared_info->sinstrument[n];
/*
* Skip workers that didn't do any work. We needn't bother checking
@@ -3191,10 +3190,10 @@ show_resultcache_info(ResultCacheState *rcstate, List *ancestors,
ExplainOpenWorker(n, es);
/*
- * Since the worker's ResultCacheState.mem_used field is unavailable
- * to us, ExecEndResultCache will have set the
- * ResultCacheInstrumentation.mem_peak field for us. No need to do
- * the zero checks like we did for the serial case above.
+ * Since the worker's MemoizeState.mem_used field is unavailable to
+ * us, ExecEndMemoize will have set the
+ * MemoizeInstrumentation.mem_peak field for us. No need to do the
+ * zero checks like we did for the serial case above.
*/
memPeakKb = (si->mem_peak + 1023) / 1024;