diff --git a/docs/en_US/query_tool.rst b/docs/en_US/query_tool.rst index 3e33a57d..7f4098d6 100644 --- a/docs/en_US/query_tool.rst +++ b/docs/en_US/query_tool.rst @@ -207,7 +207,7 @@ the *Data Output* tab. * Table *Table* tab shows the plan details in table format, it generates table format -similar to *explain.depsez.com*. Each row of the table represent the data for a +similar to *explain.depesz.com*. Each row of the table represent the data for a *Explain Plan Node*. It may contain the node information, exclusive timing, inclusive timing, actual vs planned rows differences, actual rows, planned rows, loops. diff --git a/web/pgadmin/misc/static/explain/js/explain.js b/web/pgadmin/misc/static/explain/js/explain.js index da50040f..45d68b91 100644 --- a/web/pgadmin/misc/static/explain/js/explain.js +++ b/web/pgadmin/misc/static/explain/js/explain.js @@ -660,7 +660,7 @@ define('pgadmin.misc.explain', [ if ('Actual Total Time' in data && 'Actual Loops' in data) { data['inclusive'] = Math.ceil10( - data['Actual Total Time'] * data['Actual Loops'], -3 + data['Actual Total Time'], -3 ); data['exclusive'] = data['inclusive']; data['inclusive_factor'] = data['inclusive'] / ( @@ -687,7 +687,7 @@ define('pgadmin.misc.explain', [ data['rowsx_flag'] = data['rowsx'] <= 10 ? '1' : ( data['rowsx'] <= 100 ? '2' : (data['rowsx'] <= 1000 ? '3' : '4') ); - data['rowsx'] = Math.ceil10(data['rowsx'], -2); + data['rowsx'] = Math.ceil10(data['rowsx'] / data['loops'], -2); } // Start calculating xpos, ypos, width and height for child plans if any @@ -709,6 +709,7 @@ define('pgadmin.misc.explain', [ ypos: ypos, total_time: data['total_time'] || data['Actual Total Time'], parent_node: lvl.join('_'), + loops: data['Actual Loops'] }), _opt)); if (maxChildWidth < plan.get('width')) { @@ -717,7 +718,7 @@ define('pgadmin.misc.explain', [ if ('exclusive' in data) { inclusive = plan.get('inclusive'); - if (inclusive) { + if (inclusive && inclusive < data['exclusive']) { data['exclusive'] -= inclusive; } } @@ -734,6 +735,9 @@ define('pgadmin.misc.explain', [ plans.push(plan); idx++; }); + } else{ + data['inclusive'] = Math.ceil10(data['Actual Total Time'] / data['loops'], -3) + data['exclusive'] = data['inclusive']; } if ('exclusive' in data) {