!2958 修复explain时hashtable为空的问题
Merge pull request !2958 from wanghao19920907/fixbug_PR_2297
This commit is contained in:
@ -4301,7 +4301,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);
|
||||
@ -4316,7 +4317,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);
|
||||
@ -4727,6 +4729,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;
|
||||
@ -4772,9 +4775,9 @@ static void show_hash_info(HashState* hashstate, ExplainState* es)
|
||||
|
||||
es->planinfo->m_staticInfo->set_plan_name<false, true>();
|
||||
appendStringInfo(es->planinfo->m_staticInfo->info_str, "%s ", node_name);
|
||||
show_datanode_hash_info<false>(es, nbatch, hashtable->nbuckets_original, nbatch_original, nbuckets, spacePeakKb);
|
||||
show_datanode_hash_info<false>(es, nbatch, nbuckets, nbatch_original, nbuckets, spacePeakKb);
|
||||
}
|
||||
show_datanode_hash_info<true>(es, nbatch, hashtable->nbuckets_original, nbatch_original, nbuckets, spacePeakKb);
|
||||
show_datanode_hash_info<true>(es, nbatch, nbuckets, nbatch_original, nbuckets, spacePeakKb);
|
||||
ExplainCloseGroup("Plan", NULL, true, es);
|
||||
}
|
||||
ExplainCloseGroup("Hash Detail", "Hash Detail", false, es);
|
||||
@ -4888,12 +4891,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<false>(es, nbatch, hashtable->nbuckets_original, nbatch_original, nbuckets, spacePeakKb);
|
||||
show_datanode_hash_info<false>(es, nbatch, nbuckets_original, nbatch_original, nbuckets, spacePeakKb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user