From 3bc9cc5f7d4937c97f149b4c87e315839a13754d Mon Sep 17 00:00:00 2001 From: wanghao19920907 Date: Thu, 23 Feb 2023 21:55:06 -0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dexplain=E6=97=B6hashtable?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/optimizer/commands/explain.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gausskernel/optimizer/commands/explain.cpp b/src/gausskernel/optimizer/commands/explain.cpp index 19dfdfed4..4fb1e8192 100755 --- a/src/gausskernel/optimizer/commands/explain.cpp +++ b/src/gausskernel/optimizer/commands/explain.cpp @@ -4297,7 +4297,8 @@ static void show_datanode_hash_info(ExplainState* es, int nbatch, int nbuckets_o if (nbatch_original != nbatch) { appendStringInfo(es->planinfo->m_staticInfo->info_str, " Buckets: %d (originally %d) Batches: %d (originally %d) Memory Usage: %ldkB\n", - nbuckets, nbuckets_original, + nbuckets, + nbuckets_original, nbatch, nbatch_original, spacePeakKb); @@ -4312,7 +4313,8 @@ static void show_datanode_hash_info(ExplainState* es, int nbatch, int nbuckets_o if (nbatch_original != nbatch) { appendStringInfo(es->str, " Buckets: %d (originally %d) Batches: %d (originally %d) Memory Usage: %ldkB\n", - nbuckets, nbuckets_original, + nbuckets, + nbuckets_original, nbatch, nbatch_original, spacePeakKb); @@ -4723,6 +4725,7 @@ static void show_hash_info(HashState* hashstate, ExplainState* es) int nbatch; int nbatch_original; int nbuckets; + int nbuckets_original; long spacePeakKb = 0; int max_nbatch = -1; int min_nbatch = INT_MAX; @@ -4768,9 +4771,9 @@ static void show_hash_info(HashState* hashstate, ExplainState* es) es->planinfo->m_staticInfo->set_plan_name(); appendStringInfo(es->planinfo->m_staticInfo->info_str, "%s ", node_name); - show_datanode_hash_info(es, nbatch, hashtable->nbuckets_original, nbatch_original, nbuckets, spacePeakKb); + show_datanode_hash_info(es, nbatch, nbuckets, nbatch_original, nbuckets, spacePeakKb); } - show_datanode_hash_info(es, nbatch, hashtable->nbuckets_original, nbatch_original, nbuckets, spacePeakKb); + show_datanode_hash_info(es, nbatch, nbuckets, nbatch_original, nbuckets, spacePeakKb); ExplainCloseGroup("Plan", NULL, true, es); } ExplainCloseGroup("Hash Detail", "Hash Detail", false, es); @@ -4884,12 +4887,15 @@ static void show_hash_info(HashState* hashstate, ExplainState* es) nbatch = hashinfo.nbatch; nbatch_original = hashinfo.nbatch_original; nbuckets = hashinfo.nbuckets; - + if (es->analyze) + nbuckets_original = hashtable ? hashtable->nbuckets_original : nbuckets; + else + nbuckets_original = nbuckets; /* wlm_statistics_plan_max_digit: this variable is used to judge, isn't it a active sql */ if (es->wlm_statistics_plan_max_digit == NULL) { if (es->format == EXPLAIN_FORMAT_TEXT) appendStringInfoSpaces(es->str, es->indent * 2); - show_datanode_hash_info(es, nbatch, hashtable->nbuckets_original, nbatch_original, nbuckets, spacePeakKb); + show_datanode_hash_info(es, nbatch, nbuckets_original, nbatch_original, nbuckets, spacePeakKb); } } }