From 980a233aad2e3baec7a23f725eb1a95b90ef618a Mon Sep 17 00:00:00 2001 From: Aasim Khan Date: Mon, 11 Jul 2022 21:34:38 -0700 Subject: [PATCH] Sorting top by cost initially (#19998) --- .../contrib/executionPlan/browser/topOperationsTab.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/sql/workbench/contrib/executionPlan/browser/topOperationsTab.ts b/src/sql/workbench/contrib/executionPlan/browser/topOperationsTab.ts index 47bff3a1c7..113681d810 100644 --- a/src/sql/workbench/contrib/executionPlan/browser/topOperationsTab.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/topOperationsTab.ts @@ -28,6 +28,9 @@ import { Action } from 'vs/base/common/actions'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { ITableKeyboardEvent } from 'sql/base/browser/ui/table/interfaces'; import { Disposable } from 'vs/base/common/lifecycle'; + +const TABLE_SORT_COLUMN_KEY = 'tableCostColumnForSorting'; + export class TopOperationsTab extends Disposable implements IPanelTab { public readonly title = localize('topOperationsTabTitle', "Top Operations (Preview)"); public readonly identifier: string = 'TopOperationsTab'; @@ -128,9 +131,14 @@ export class TopOperationsTabView extends Disposable implements IPanelView { if (node.children) { node.children.forEach(c => stack.push(c)); } - + row[TABLE_SORT_COLUMN_KEY] = node.cost; dataMap.push(row); } + + dataMap.sort((a, b) => { + return b[TABLE_SORT_COLUMN_KEY] - a[TABLE_SORT_COLUMN_KEY]; + }); + const columns = columnValues.map((c, i) => { return >{ id: c.toString(), @@ -252,6 +260,7 @@ export class TopOperationsTabView extends Disposable implements IPanelView { this._queryResultsView.focusOnNode(planId, nodeId); } })); + this._tables.push(table); const contextMenuAction = [ this._instantiationService.createInstance(CopyTableData),