diff --git a/resources/localization/LCL/de/sql.xlf.lcl b/resources/localization/LCL/de/sql.xlf.lcl index edbbb1f611..7516655715 100644 --- a/resources/localization/LCL/de/sql.xlf.lcl +++ b/resources/localization/LCL/de/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/es/sql.xlf.lcl b/resources/localization/LCL/es/sql.xlf.lcl index 7b023f1c84..934d045211 100644 --- a/resources/localization/LCL/es/sql.xlf.lcl +++ b/resources/localization/LCL/es/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/fr/sql.xlf.lcl b/resources/localization/LCL/fr/sql.xlf.lcl index 8409841a30..c91d5cd5e4 100644 --- a/resources/localization/LCL/fr/sql.xlf.lcl +++ b/resources/localization/LCL/fr/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/it/sql.xlf.lcl b/resources/localization/LCL/it/sql.xlf.lcl index 1ac5061d6a..278c0a6c8c 100644 --- a/resources/localization/LCL/it/sql.xlf.lcl +++ b/resources/localization/LCL/it/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11940,7 +11940,7 @@ - + @@ -11949,7 +11949,7 @@ - + @@ -16652,4 +16652,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/ja/sql.xlf.lcl b/resources/localization/LCL/ja/sql.xlf.lcl index 745966dc0c..2e7611e7f8 100644 --- a/resources/localization/LCL/ja/sql.xlf.lcl +++ b/resources/localization/LCL/ja/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/ko/sql.xlf.lcl b/resources/localization/LCL/ko/sql.xlf.lcl index 77917bbc97..af47d6e3d3 100644 --- a/resources/localization/LCL/ko/sql.xlf.lcl +++ b/resources/localization/LCL/ko/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11940,7 +11940,7 @@ - + @@ -11949,7 +11949,7 @@ - + @@ -16652,4 +16652,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/pt-BR/sql.xlf.lcl b/resources/localization/LCL/pt-BR/sql.xlf.lcl index e3321b45f6..dbfcfdefad 100644 --- a/resources/localization/LCL/pt-BR/sql.xlf.lcl +++ b/resources/localization/LCL/pt-BR/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/ru/sql.xlf.lcl b/resources/localization/LCL/ru/sql.xlf.lcl index 88df326beb..de66e1e16c 100644 --- a/resources/localization/LCL/ru/sql.xlf.lcl +++ b/resources/localization/LCL/ru/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11940,7 +11940,7 @@ - + @@ -11949,7 +11949,7 @@ - + @@ -16652,4 +16652,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/zh-Hans/sql.xlf.lcl b/resources/localization/LCL/zh-Hans/sql.xlf.lcl index edcf33de00..67f0724472 100644 --- a/resources/localization/LCL/zh-Hans/sql.xlf.lcl +++ b/resources/localization/LCL/zh-Hans/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/localization/LCL/zh-Hant/sql.xlf.lcl b/resources/localization/LCL/zh-Hant/sql.xlf.lcl index 5b2d42805d..e398679a2e 100644 --- a/resources/localization/LCL/zh-Hant/sql.xlf.lcl +++ b/resources/localization/LCL/zh-Hant/sql.xlf.lcl @@ -11826,7 +11826,7 @@ - + @@ -11835,7 +11835,7 @@ - + @@ -11844,7 +11844,7 @@ - + @@ -11853,7 +11853,7 @@ - + @@ -11943,7 +11943,7 @@ - + @@ -11952,7 +11952,7 @@ - + @@ -16655,4 +16655,4 @@ - \ No newline at end of file + diff --git a/resources/xlf/de/sql.de.xlf b/resources/xlf/de/sql.de.xlf index 2e457178cc..17a484e201 100644 --- a/resources/xlf/de/sql.de.xlf +++ b/resources/xlf/de/sql.de.xlf @@ -5798,19 +5798,19 @@ Fehler: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Fehler: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Fehler: {1} - \ No newline at end of file + diff --git a/resources/xlf/en/sql.xlf b/resources/xlf/en/sql.xlf index 10f8cfafed..58265dd7b0 100644 --- a/resources/xlf/en/sql.xlf +++ b/resources/xlf/en/sql.xlf @@ -4158,16 +4158,16 @@ Error: {1} Properties - + Edge - + Close - + Alphabetical - + Categorized @@ -4201,10 +4201,10 @@ Error: {1} Previous Match (Shift+Enter) - + Contains - + Equals @@ -6049,4 +6049,4 @@ Error: {1} Show Getting Started - \ No newline at end of file + diff --git a/resources/xlf/es/sql.es.xlf b/resources/xlf/es/sql.es.xlf index a40f02352b..d7cbdd9301 100644 --- a/resources/xlf/es/sql.es.xlf +++ b/resources/xlf/es/sql.es.xlf @@ -5798,19 +5798,19 @@ Error: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Error: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Error: {1} - \ No newline at end of file + diff --git a/resources/xlf/fr/sql.fr.xlf b/resources/xlf/fr/sql.fr.xlf index 848d91ec23..dcba400e1c 100644 --- a/resources/xlf/fr/sql.fr.xlf +++ b/resources/xlf/fr/sql.fr.xlf @@ -5798,19 +5798,19 @@ Erreur : {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Erreur : {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Erreur : {1} - \ No newline at end of file + diff --git a/resources/xlf/it/sql.it.xlf b/resources/xlf/it/sql.it.xlf index 37476c016e..f6c92ce8e3 100644 --- a/resources/xlf/it/sql.it.xlf +++ b/resources/xlf/it/sql.it.xlf @@ -5798,19 +5798,19 @@ Errore: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Errore: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Errore: {1} - \ No newline at end of file + diff --git a/resources/xlf/ja/sql.ja.xlf b/resources/xlf/ja/sql.ja.xlf index 64630d8388..fbc20f389b 100644 --- a/resources/xlf/ja/sql.ja.xlf +++ b/resources/xlf/ja/sql.ja.xlf @@ -5798,19 +5798,19 @@ Error: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Error: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Error: {1} - \ No newline at end of file + diff --git a/resources/xlf/ko/sql.ko.xlf b/resources/xlf/ko/sql.ko.xlf index 4e25c7fb60..b4be74c2c3 100644 --- a/resources/xlf/ko/sql.ko.xlf +++ b/resources/xlf/ko/sql.ko.xlf @@ -5798,19 +5798,19 @@ Error: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Error: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -7208,7 +7208,7 @@ Error: {1} Could not find query file at any of the following paths : {0} - 다음 경로에서 쿼리 파일을 찾을 수 없습니다. + 다음 경로에서 쿼리 파일을 찾을 수 없습니다. {0} @@ -8440,4 +8440,4 @@ Error: {1} - \ No newline at end of file + diff --git a/resources/xlf/pt-br/sql.pt-BR.xlf b/resources/xlf/pt-br/sql.pt-BR.xlf index 82f91f64dd..09dfd1c324 100644 --- a/resources/xlf/pt-br/sql.pt-BR.xlf +++ b/resources/xlf/pt-br/sql.pt-BR.xlf @@ -5798,19 +5798,19 @@ Erro: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Erro: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8439,4 +8439,4 @@ Erro: {1} - \ No newline at end of file + diff --git a/resources/xlf/ru/sql.ru.xlf b/resources/xlf/ru/sql.ru.xlf index 75868908d9..dff9053535 100644 --- a/resources/xlf/ru/sql.ru.xlf +++ b/resources/xlf/ru/sql.ru.xlf @@ -5798,19 +5798,19 @@ Error: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Error: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Error: {1} - \ No newline at end of file + diff --git a/resources/xlf/zh-hans/sql.zh-Hans.xlf b/resources/xlf/zh-hans/sql.zh-Hans.xlf index 338020e0bd..37c2bb8b48 100644 --- a/resources/xlf/zh-hans/sql.zh-Hans.xlf +++ b/resources/xlf/zh-hans/sql.zh-Hans.xlf @@ -5798,19 +5798,19 @@ Error: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Error: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Error: {1} - \ No newline at end of file + diff --git a/resources/xlf/zh-hant/sql.zh-Hant.xlf b/resources/xlf/zh-hant/sql.zh-Hant.xlf index 685f299952..534d8b2ba8 100644 --- a/resources/xlf/zh-hant/sql.zh-Hant.xlf +++ b/resources/xlf/zh-hant/sql.zh-Hant.xlf @@ -5798,19 +5798,19 @@ Error: {1} Properties Properties - + Edge Edge - + Close Close - + Alphabetical Alphabetical - + Categorized Categorized @@ -5850,11 +5850,11 @@ Error: {1} Previous Match (Shift+Enter) Previous Match (Shift+Enter) - + Contains Contains - + Equals Equals @@ -8440,4 +8440,4 @@ Error: {1} - \ No newline at end of file + diff --git a/src/sql/workbench/common/editor/query/queryPlan2State.ts b/src/sql/workbench/common/editor/query/executionPlanState.ts similarity index 87% rename from src/sql/workbench/common/editor/query/queryPlan2State.ts rename to src/sql/workbench/common/editor/query/executionPlanState.ts index 475149fd56..69024f1ad5 100644 --- a/src/sql/workbench/common/editor/query/queryPlan2State.ts +++ b/src/sql/workbench/common/editor/query/executionPlanState.ts @@ -5,9 +5,9 @@ import type * as azdata from 'azdata'; -export class QueryPlan2State { +export class ExecutionPlanState { graphs: azdata.ExecutionPlanGraph[] = []; - clearQueryPlan2State() { + clearExecutionPlanState() { this.graphs = []; } } diff --git a/src/sql/workbench/common/editor/query/queryResultsInput.ts b/src/sql/workbench/common/editor/query/queryResultsInput.ts index da4dd4a368..6d6b35bb2a 100644 --- a/src/sql/workbench/common/editor/query/queryResultsInput.ts +++ b/src/sql/workbench/common/editor/query/queryResultsInput.ts @@ -12,7 +12,7 @@ import { QueryPlanState } from 'sql/workbench/common/editor/query/queryPlanState import { GridPanelState } from 'sql/workbench/common/editor/query/gridTableState'; import { QueryModelViewState } from 'sql/workbench/common/editor/query/modelViewState'; import { URI } from 'vs/base/common/uri'; -import { QueryPlan2State } from 'sql/workbench/common/editor/query/queryPlan2State'; +import { ExecutionPlanState } from 'sql/workbench/common/editor/query/executionPlanState'; export class ResultsViewState { public readonly gridPanelState: GridPanelState = new GridPanelState(); @@ -20,7 +20,7 @@ export class ResultsViewState { public readonly queryPlanState: QueryPlanState = new QueryPlanState(); public readonly topOperationsState = new TopOperationsState(); public readonly dynamicModelViewTabsState: Map = new Map(); - public readonly queryPlan2State: QueryPlan2State = new QueryPlan2State(); + public readonly executionPlanState: ExecutionPlanState = new ExecutionPlanState(); public activeTab?: string; public readonly visibleTabs: Set = new Set(); @@ -29,7 +29,7 @@ export class ResultsViewState { this.gridPanelState.dispose(); this.chartState.dispose(); this.queryPlanState.dispose(); - this.queryPlan2State.clearQueryPlan2State(); + this.executionPlanState.clearExecutionPlanState(); this.dynamicModelViewTabsState.forEach((state: QueryModelViewState, identifier: string) => { state.dispose(); }); diff --git a/src/sql/workbench/contrib/queryplan2/browser/constants.ts b/src/sql/workbench/contrib/executionPlan/browser/constants.ts similarity index 99% rename from src/sql/workbench/contrib/queryplan2/browser/constants.ts rename to src/sql/workbench/contrib/executionPlan/browser/constants.ts index 3272dbffd8..e1845ed350 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/constants.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/constants.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ let imageBasePath = require.toUrl('./images/icons/'); -export let queryPlanNodeIconPaths = +export let executionPlanNodeIconPaths = { // generic icons iteratorCatchAll: imageBasePath + 'iterator_catch_all.png', diff --git a/src/sql/workbench/contrib/queryplan2/browser/queryPlan.ts b/src/sql/workbench/contrib/executionPlan/browser/executionPlan.ts similarity index 80% rename from src/sql/workbench/contrib/queryplan2/browser/queryPlan.ts rename to src/sql/workbench/contrib/executionPlan/browser/executionPlan.ts index b78f30abae..a72834eb46 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/queryPlan.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/executionPlan.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import 'vs/css!./media/queryPlan2'; +import 'vs/css!./media/executionPlan'; import type * as azdata from 'azdata'; import { IPanelView, IPanelTab } from 'sql/base/browser/ui/panel/panel'; import { localize } from 'vs/nls'; @@ -11,10 +11,10 @@ import { dispose } from 'vs/base/common/lifecycle'; import { ActionBar } from 'sql/base/browser/ui/taskbar/actionbar'; import * as DOM from 'vs/base/browser/dom'; import * as azdataGraphModule from 'azdataGraph'; -import { customZoomIconClassNames, openPlanFileIconClassNames, openPropertiesIconClassNames, openQueryIconClassNames, queryPlanNodeIconPaths, savePlanIconClassNames, searchIconClassNames, zoomInIconClassNames, zoomOutIconClassNames, zoomToFitIconClassNames } from 'sql/workbench/contrib/queryplan2/browser/constants'; +import { customZoomIconClassNames, openPlanFileIconClassNames, openPropertiesIconClassNames, openQueryIconClassNames, executionPlanNodeIconPaths, savePlanIconClassNames, searchIconClassNames, zoomInIconClassNames, zoomOutIconClassNames, zoomToFitIconClassNames } from 'sql/workbench/contrib/executionPlan/browser/constants'; import { isString } from 'vs/base/common/types'; -import { PlanHeader } from 'sql/workbench/contrib/queryplan2/browser/planHeader'; -import { QueryPlanPropertiesView } from 'sql/workbench/contrib/queryplan2/browser/queryPlanPropertiesView'; +import { PlanHeader } from 'sql/workbench/contrib/executionPlan/browser/planHeader'; +import { ExecutionPlanPropertiesView } from 'sql/workbench/contrib/executionPlan/browser/executionPlanPropertiesView'; import { Action } from 'vs/base/common/actions'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { openNewQuery } from 'sql/workbench/contrib/query/browser/queryActions'; @@ -30,9 +30,9 @@ import { formatDocumentWithSelectedProvider, FormattingMode } from 'vs/editor/co import { Progress } from 'vs/platform/progress/common/progress'; import { CancellationToken } from 'vs/base/common/cancellation'; import { EDITOR_FONT_DEFAULTS } from 'vs/editor/common/config/editorOptions'; -import { QueryPlanWidgetController } from 'sql/workbench/contrib/queryplan2/browser/queryPlanWidgetController'; -import { CustomZoomWidget } from 'sql/workbench/contrib/queryplan2/browser/widgets/customZoomWidget'; -import { NodeSearchWidget } from 'sql/workbench/contrib/queryplan2/browser/widgets/nodeSearchWidget'; +import { ExecutionPlanWidgetController } from 'sql/workbench/contrib/executionPlan/browser/executionPlanWidgetController'; +import { CustomZoomWidget } from 'sql/workbench/contrib/executionPlan/browser/widgets/customZoomWidget'; +import { NodeSearchWidget } from 'sql/workbench/contrib/executionPlan/browser/widgets/nodeSearchWidget'; import { IFileDialogService } from 'vs/platform/dialogs/common/dialogs'; import { IFileService } from 'vs/platform/files/common/files'; import { VSBuffer } from 'vs/base/common/buffer'; @@ -56,15 +56,15 @@ export interface InternalExecutionPlanEdge extends azdata.ExecutionPlanEdge { id?: string; } -export class QueryPlan2Tab implements IPanelTab { - public readonly title = localize('queryPlanTitle', "Query Plan (Preview)"); - public readonly identifier = 'QueryPlan2Tab'; - public readonly view: QueryPlan2View; +export class ExecutionPlanTab implements IPanelTab { + public readonly title = localize('executionPlanTitle', "Query Plan (Preview)"); + public readonly identifier = 'ExecutionPlan2Tab'; + public readonly view: ExecutionPlanView; constructor( @IInstantiationService instantiationService: IInstantiationService, ) { - this.view = instantiationService.createInstance(QueryPlan2View); + this.view = instantiationService.createInstance(ExecutionPlanView); } public dispose() { @@ -77,10 +77,10 @@ export class QueryPlan2Tab implements IPanelTab { } -export class QueryPlan2View implements IPanelView { - private _qps?: QueryPlan2[] = []; +export class ExecutionPlanView implements IPanelView { + private _eps?: ExecutionPlan[] = []; private _graphs?: azdata.ExecutionPlanGraph[] = []; - private _container = DOM.$('.qps-container'); + private _container = DOM.$('.eps-container'); constructor( @IInstantiationService private instantiationService: IInstantiationService, @@ -93,7 +93,7 @@ export class QueryPlan2View implements IPanelView { dispose() { this._container.remove(); - delete this._qps; + delete this._eps; delete this._graphs; } @@ -101,7 +101,7 @@ export class QueryPlan2View implements IPanelView { } public clear() { - this._qps = []; + this._eps = []; this._graphs = []; DOM.clearNode(this._container); } @@ -109,9 +109,9 @@ export class QueryPlan2View implements IPanelView { public addGraphs(newGraphs: azdata.ExecutionPlanGraph[] | undefined) { if (newGraphs) { newGraphs.forEach(g => { - const qp2 = this.instantiationService.createInstance(QueryPlan2, this._container, this._qps.length + 1); - qp2.graphModel = g; - this._qps.push(qp2); + const ep = this.instantiationService.createInstance(ExecutionPlan, this._container, this._eps.length + 1); + ep.graphModel = g; + this._eps.push(ep); this._graphs.push(g); this.updateRelativeCosts(); }); @@ -124,14 +124,14 @@ export class QueryPlan2View implements IPanelView { }, 0); if (sum > 0) { - this._qps.forEach(qp => { - qp.planHeader.relativeCost = ((qp.graphModel.root.subTreeCost + qp.graphModel.root.cost) / sum) * 100; + this._eps.forEach(ep => { + ep.planHeader.relativeCost = ((ep.graphModel.root.subTreeCost + ep.graphModel.root.cost) / sum) * 100; }); } } } -export class QueryPlan2 implements ISashLayoutProvider { +export class ExecutionPlan implements ISashLayoutProvider { private _graphModel?: azdata.ExecutionPlanGraph; private _container: HTMLElement; @@ -143,11 +143,11 @@ export class QueryPlan2 implements ISashLayoutProvider { private _planContainer: HTMLElement; private _planHeaderContainer: HTMLElement; - public propertiesView: QueryPlanPropertiesView; + public propertiesView: ExecutionPlanPropertiesView; private _propContainer: HTMLElement; private _planActionContainer: HTMLElement; - public planActionView: QueryPlanWidgetController; + public planActionView: ExecutionPlanWidgetController; public azdataGraphDiagram: any; @@ -170,9 +170,9 @@ export class QueryPlan2 implements ISashLayoutProvider { @ITextResourcePropertiesService private readonly textResourcePropertiesService: ITextResourcePropertiesService, ) { // parent container for query plan. - this._container = DOM.$('.query-plan'); + this._container = DOM.$('.execution-plan'); this._parent.appendChild(this._container); - const sashContainer = DOM.$('.query-plan-sash'); + const sashContainer = DOM.$('.execution-plan-sash'); this._parent.appendChild(sashContainer); const sash = new Sash(sashContainer, this, { orientation: Orientation.HORIZONTAL }); @@ -227,11 +227,11 @@ export class QueryPlan2 implements ISashLayoutProvider { // container properties this._propContainer = DOM.$('.properties'); this._container.appendChild(this._propContainer); - this.propertiesView = new QueryPlanPropertiesView(this._propContainer, this._themeService); + this.propertiesView = new ExecutionPlanPropertiesView(this._propContainer, this._themeService); this._planActionContainer = DOM.$('.plan-action-container'); this._planContainer.appendChild(this._planActionContainer); - this.planActionView = new QueryPlanWidgetController(this._planActionContainer); + this.planActionView = new ExecutionPlanWidgetController(this._planActionContainer); // container that holds actionbar icons this._actionBarContainer = DOM.$('.action-bar-container'); @@ -350,7 +350,7 @@ export class QueryPlan2 implements ISashLayoutProvider { let graphRoot: azdata.ExecutionPlanNode = this._graphModel.root; this.populate(graphRoot, diagramRoot); - this.azdataGraphDiagram = new azdataGraph.azdataQueryPlan(container, diagramRoot, queryPlanNodeIconPaths); + this.azdataGraphDiagram = new azdataGraph.azdataQueryPlan(container, diagramRoot, executionPlanNodeIconPaths); this.azdataGraphDiagram.graph.setCellsMovable(false); // preventing drag and drop of graph nodes. this.azdataGraphDiagram.graph.setCellsDisconnectable(false); // preventing graph edges to be disconnected from source and target nodes. @@ -456,66 +456,66 @@ export class QueryPlan2 implements ISashLayoutProvider { } class OpenQueryAction extends Action { - public static ID = 'qp.OpenQueryAction'; + public static ID = 'ep.OpenQueryAction'; public static LABEL = localize('openQueryAction', "Open Query"); constructor() { super(OpenQueryAction.ID, OpenQueryAction.LABEL, openQueryIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.openQuery(); } } class PropertiesAction extends Action { - public static ID = 'qp.propertiesAction'; - public static LABEL = localize('queryPlanPropertiesActionLabel', "Properties"); + public static ID = 'ep.propertiesAction'; + public static LABEL = localize('executionPlanPropertiesActionLabel', "Properties"); constructor() { super(PropertiesAction.ID, PropertiesAction.LABEL, openPropertiesIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.propertiesView.toggleVisibility(); } } class ZoomInAction extends Action { - public static ID = 'qp.ZoomInAction'; - public static LABEL = localize('queryPlanZoomInActionLabel', "Zoom In"); + public static ID = 'ep.ZoomInAction'; + public static LABEL = localize('executionPlanZoomInActionLabel', "Zoom In"); constructor() { super(ZoomInAction.ID, ZoomInAction.LABEL, zoomInIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.azdataGraphDiagram.graph.zoomIn(); } } class ZoomOutAction extends Action { - public static ID = 'qp.ZoomOutAction'; - public static LABEL = localize('queryPlanZoomOutActionLabel', "Zoom Out"); + public static ID = 'ep.ZoomOutAction'; + public static LABEL = localize('executionPlanZoomOutActionLabel', "Zoom Out"); constructor() { super(ZoomOutAction.ID, ZoomOutAction.LABEL, zoomOutIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.azdataGraphDiagram.graph.zoomOut(); } } class ZoomToFitAction extends Action { - public static ID = 'qp.FitGraph'; - public static LABEL = localize('queryPlanFitGraphLabel', "Zoom to fit"); + public static ID = 'ep.FitGraph'; + public static LABEL = localize('executionPlanFitGraphLabel', "Zoom to fit"); constructor() { super(ZoomToFitAction.ID, ZoomToFitAction.LABEL, zoomToFitIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.azdataGraphDiagram.graph.fit(); context.azdataGraphDiagram.graph.view.rendering = true; context.azdataGraphDiagram.graph.refresh(); @@ -523,14 +523,14 @@ class ZoomToFitAction extends Action { } class SavePlanFile extends Action { - public static ID = 'qp.saveXML'; - public static LABEL = localize('queryPlanSavePlanXML', "Save Plan File"); + public static ID = 'ep.saveXML'; + public static LABEL = localize('executionPlanSavePlanXML', "Save Plan File"); constructor() { super(SavePlanFile.ID, SavePlanFile.LABEL, savePlanIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { const workspaceFolders = await context.workspaceContextService.getWorkspace().folders; const defaultFileName = 'plan'; let currentWorkSpaceFolder: URI; @@ -544,7 +544,7 @@ class SavePlanFile extends Action { filters: [ { extensions: ['sqlplan'], //TODO: Get this extension from provider - name: localize('queryPlan.SaveFileDescription', 'Execution Plan Files') //TODO: Get the names from providers. + name: localize('executionPlan.SaveFileDescription', 'Execution Plan Files') //TODO: Get the names from providers. } ], defaultUri: currentWorkSpaceFolder // If no workspaces are opened this will be undefined @@ -556,40 +556,40 @@ class SavePlanFile extends Action { } class CustomZoomAction extends Action { - public static ID = 'qp.customZoom'; - public static LABEL = localize('queryPlanCustomZoom', "Custom Zoom"); + public static ID = 'ep.customZoom'; + public static LABEL = localize('executionPlanCustomZoom', "Custom Zoom"); constructor() { super(CustomZoomAction.ID, CustomZoomAction.LABEL, customZoomIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.planActionView.toggleWidget(context._instantiationService.createInstance(CustomZoomWidget, context)); } } class SearchNodeAction extends Action { - public static ID = 'qp.searchNode'; - public static LABEL = localize('queryPlanSearchNodeAction', "Find Node"); + public static ID = 'ep.searchNode'; + public static LABEL = localize('executionPlanSearchNodeAction', "Find Node"); constructor() { super(SearchNodeAction.ID, SearchNodeAction.LABEL, searchIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { context.planActionView.toggleWidget(context._instantiationService.createInstance(NodeSearchWidget, context)); } } class OpenPlanFile extends Action { - public static ID = 'qp.openGraphFile'; - public static Label = localize('queryPlanOpenGraphFile', "Show Query Plan XML"); //TODO: add a contribution point for providers to set this text + public static ID = 'ep.openGraphFile'; + public static Label = localize('executionPlanOpenGraphFile', "Show Query Plan XML"); //TODO: add a contribution point for providers to set this text constructor() { super(OpenPlanFile.ID, OpenPlanFile.Label, openPlanFileIconClassNames); } - public override async run(context: QueryPlan2): Promise { + public override async run(context: ExecutionPlan): Promise { await context.openGraphFile(); } } @@ -598,7 +598,7 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) = const recommendationsColor = theme.getColor(textLinkForeground); if (recommendationsColor) { collector.addRule(` - .qps-container .query-plan .plan .header .recommendations { + .eps-container .execution-plan .plan .header .recommendations { color: ${recommendationsColor}; } `); @@ -606,7 +606,7 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) = const shadow = theme.getColor(widgetShadow); if (shadow) { collector.addRule(` - .qps-container .query-plan .plan .plan-action-container .child { + .eps-container .execution-plan .plan .plan-action-container .child { box-shadow: 0 0 8px 2px ${shadow}; } `); @@ -615,9 +615,9 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) = const menuBackgroundColor = theme.getColor(listHoverBackground); if (menuBackgroundColor) { collector.addRule(` - .qps-container .query-plan .plan .header, - .qps-container .query-plan .properties .title, - .qps-container .query-plan .properties .table-action-bar { + .eps-container .execution-plan .plan .header, + .eps-container .execution-plan .properties .title, + .eps-container .execution-plan .properties .table-action-bar { background-color: ${menuBackgroundColor}; } `); @@ -626,7 +626,7 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) = const widgetBackgroundColor = theme.getColor(editorWidgetBackground); if (widgetBackgroundColor) { collector.addRule(` - .qps-container .query-plan .plan .plan-action-container .child, + .eps-container .execution-plan .plan .plan-action-container .child, .mxTooltip { background-color: ${widgetBackgroundColor}; } @@ -636,10 +636,10 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) = const widgetBorderColor = theme.getColor(contrastBorder); if (widgetBorderColor) { collector.addRule(` - .qps-container .query-plan .plan .plan-action-container .child, - .qps-container .query-plan .plan .header, - .qps-container .query-plan .properties .title, - .qps-container .query-plan .properties .table-action-bar, + .eps-container .execution-plan .plan .plan-action-container .child, + .eps-container .execution-plan .plan .header, + .eps-container .execution-plan .properties .title, + .eps-container .execution-plan .properties .table-action-bar, .mxTooltip { border: 1px solid ${widgetBorderColor}; } diff --git a/src/sql/workbench/contrib/queryplan2/browser/queryPlanPropertiesView.ts b/src/sql/workbench/contrib/executionPlan/browser/executionPlanPropertiesView.ts similarity index 90% rename from src/sql/workbench/contrib/queryplan2/browser/queryPlanPropertiesView.ts rename to src/sql/workbench/contrib/executionPlan/browser/executionPlanPropertiesView.ts index 5fb6f557e6..fe186fec5f 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/queryPlanPropertiesView.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/executionPlanPropertiesView.ts @@ -17,11 +17,11 @@ import { ActionBar } from 'sql/base/browser/ui/taskbar/actionbar'; import { ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar'; import { removeLineBreaks } from 'sql/base/common/strings'; import { isString } from 'vs/base/common/types'; -import { sortAlphabeticallyIconClassNames, sortByDisplayOrderIconClassNames } from 'sql/workbench/contrib/queryplan2/browser/constants'; +import { sortAlphabeticallyIconClassNames, sortByDisplayOrderIconClassNames } from 'sql/workbench/contrib/executionPlan/browser/constants'; import { textFormatter } from 'sql/base/browser/ui/table/formatters'; -export class QueryPlanPropertiesView { +export class ExecutionPlanPropertiesView { // Title bar with close button action private _propertiesTitle!: HTMLElement; @@ -187,7 +187,7 @@ export class QueryPlanPropertiesView { private renderView(): void { if (this._model.graphElement) { const nodeName = (this._model.graphElement).name; - this._operationName.innerText = nodeName ? removeLineBreaks(nodeName) : localize('queryPlanPropertiesEdgeOperationName', "Edge"); //since edges do not have names like node, we set the operation name to 'Edge' + this._operationName.innerText = nodeName ? removeLineBreaks(nodeName) : localize('executionPlanPropertiesEdgeOperationName', "Edge"); //since edges do not have names like node, we set the operation name to 'Edge' } this._tableContainer.scrollTo(0, 0); this._dataView.clear(); @@ -232,40 +232,40 @@ export interface GraphElementPropertyViewData { } export class ClosePropertyViewAction extends Action { - public static ID = 'qp.propertiesView.close'; - public static LABEL = localize('queryPlanPropertyViewClose', "Close"); + public static ID = 'ep.propertiesView.close'; + public static LABEL = localize('executionPlanPropertyViewClose', "Close"); constructor() { super(ClosePropertyViewAction.ID, ClosePropertyViewAction.LABEL, Codicon.close.classNames); } - public override async run(context: QueryPlanPropertiesView): Promise { + public override async run(context: ExecutionPlanPropertiesView): Promise { context.toggleVisibility(); } } export class SortPropertiesAlphabeticallyAction extends Action { - public static ID = 'qp.propertiesView.sortByAlphabet'; - public static LABEL = localize('queryPlanPropertyViewSortAlphabetically', "Alphabetical"); + public static ID = 'ep.propertiesView.sortByAlphabet'; + public static LABEL = localize('executionPlanPropertyViewSortAlphabetically', "Alphabetical"); constructor() { super(SortPropertiesAlphabeticallyAction.ID, SortPropertiesAlphabeticallyAction.LABEL, sortAlphabeticallyIconClassNames); } - public override async run(context: QueryPlanPropertiesView): Promise { + public override async run(context: ExecutionPlanPropertiesView): Promise { context.sortPropertiesAlphabetically(); } } export class SortPropertiesByDisplayOrderAction extends Action { - public static ID = 'qp.propertiesView.sortByDisplayOrder'; - public static LABEL = localize('queryPlanPropertyViewSortByDisplayOrde', "Categorized"); + public static ID = 'ep.propertiesView.sortByDisplayOrder'; + public static LABEL = localize('executionPlanPropertyViewSortByDisplayOrder', "Categorized"); constructor() { super(SortPropertiesByDisplayOrderAction.ID, SortPropertiesByDisplayOrderAction.LABEL, sortByDisplayOrderIconClassNames); } - public override async run(context: QueryPlanPropertiesView): Promise { + public override async run(context: ExecutionPlanPropertiesView): Promise { context.sortPropertiesByImportance(); } } diff --git a/src/sql/workbench/contrib/queryplan2/browser/queryPlanWidgetBase.ts b/src/sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase.ts similarity index 94% rename from src/sql/workbench/contrib/queryplan2/browser/queryPlanWidgetBase.ts rename to src/sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase.ts index 1d002ea9ce..b4f8d5758a 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/queryPlanWidgetBase.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -export abstract class QueryPlanWidgetBase { +export abstract class ExecutionPlanWidgetBase { /** * * @param container HTML Element that contains the UI for the plan action view. diff --git a/src/sql/workbench/contrib/queryplan2/browser/queryPlanWidgetController.ts b/src/sql/workbench/contrib/executionPlan/browser/executionPlanWidgetController.ts similarity index 50% rename from src/sql/workbench/contrib/queryplan2/browser/queryPlanWidgetController.ts rename to src/sql/workbench/contrib/executionPlan/browser/executionPlanWidgetController.ts index 98f3694334..bb0b2ffdc0 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/queryPlanWidgetController.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/executionPlanWidgetController.ts @@ -3,18 +3,18 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { QueryPlanWidgetBase } from 'sql/workbench/contrib/queryplan2/browser/queryPlanWidgetBase'; +import { ExecutionPlanWidgetBase as ExecutionPlanWidgetBase } from 'sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase'; -export class QueryPlanWidgetController { - private _queryPlanWidgetMap: Map = new Map(); +export class ExecutionPlanWidgetController { + private _executionPlanWidgetMap: Map = new Map(); constructor(private _parentContainer: HTMLElement) { } - private addWidget(widget: QueryPlanWidgetBase) { - if (widget.identifier && !this._queryPlanWidgetMap.has(widget.identifier)) { - this._queryPlanWidgetMap.set(widget.identifier, widget); + private addWidget(widget: ExecutionPlanWidgetBase) { + if (widget.identifier && !this._executionPlanWidgetMap.has(widget.identifier)) { + this._executionPlanWidgetMap.set(widget.identifier, widget); if (widget.container) { widget.container.classList.add('child'); this._parentContainer.appendChild(widget.container); @@ -23,11 +23,11 @@ export class QueryPlanWidgetController { } } - public removeWidget(widget: QueryPlanWidgetBase) { + public removeWidget(widget: ExecutionPlanWidgetBase) { if (widget.identifier) { - if (this._queryPlanWidgetMap.has(widget.identifier)) { - this._parentContainer.removeChild(this._queryPlanWidgetMap.get(widget.identifier).container); - this._queryPlanWidgetMap.delete(widget.identifier); + if (this._executionPlanWidgetMap.has(widget.identifier)) { + this._parentContainer.removeChild(this._executionPlanWidgetMap.get(widget.identifier).container); + this._executionPlanWidgetMap.delete(widget.identifier); } else { throw new Error('The view is not present in the container'); } @@ -38,8 +38,8 @@ export class QueryPlanWidgetController { * Adds or removes view from the controller. * @param widget PlanActionView to be added. */ - public toggleWidget(widget: QueryPlanWidgetBase) { - if (!this._queryPlanWidgetMap.has(widget.identifier)) { + public toggleWidget(widget: ExecutionPlanWidgetBase) { + if (!this._executionPlanWidgetMap.has(widget.identifier)) { this.addWidget(widget); } else { this.removeWidget(widget); diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/customZoom.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/customZoom.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/customZoom.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/customZoom.svg diff --git a/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/customZoomInverse.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/customZoomInverse.svg new file mode 100644 index 0000000000..3020c8832e --- /dev/null +++ b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/customZoomInverse.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/openPlanFile.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/openPlanFile.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/openPlanFile.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/openPlanFile.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/openProperties.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/openProperties.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/openProperties.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/openProperties.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/openQuery.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/openQuery.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/openQuery.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/openQuery.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/save.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/save.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/save.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/save.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/search.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/search.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/search.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/search.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/sortAlphabetically.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/sortAlphabetically.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/sortAlphabetically.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/sortAlphabetically.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/sortByDisplayOrder.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/sortByDisplayOrder.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/sortByDisplayOrder.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/sortByDisplayOrder.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoom.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoom.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoom.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoom.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoomIn.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoomIn.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoomIn.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoomIn.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoomOut.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoomOut.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoomOut.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoomOut.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoomToFit.svg b/src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoomToFit.svg similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/actionIcons/zoomToFit.svg rename to src/sql/workbench/contrib/executionPlan/browser/images/actionIcons/zoomToFit.svg diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/collapse.gif b/src/sql/workbench/contrib/executionPlan/browser/images/collapse.gif similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/collapse.gif rename to src/sql/workbench/contrib/executionPlan/browser/images/collapse.gif diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/expand.gif b/src/sql/workbench/contrib/executionPlan/browser/images/expand.gif similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/expand.gif rename to src/sql/workbench/contrib/executionPlan/browser/images/expand.gif diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/adaptive_join.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/adaptive_join.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/adaptive_join.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/adaptive_join.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/aggregate.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/aggregate.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/aggregate.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/aggregate.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/apply.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/apply.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/apply.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/apply.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/arithmetic_expression.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/arithmetic_expression.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/arithmetic_expression.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/arithmetic_expression.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/assert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/assert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/assert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/assert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/assign.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/assign.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/assign.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/assign.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/batch_hash_table_build.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/batch_hash_table_build.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/batch_hash_table_build.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/batch_hash_table_build.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/bitmap.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/bitmap.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/bitmap.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/bitmap.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/bookmark_lookup.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/bookmark_lookup.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/bookmark_lookup.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/bookmark_lookup.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/broadcast.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/broadcast.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/broadcast.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/broadcast.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_delete.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_delete.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_delete.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_delete.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_insert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_insert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_insert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_insert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_merge.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_merge.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_merge.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_merge.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_seek.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_seek.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_seek.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_seek.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_index_update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_index_update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/clustered_update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/clustered_update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/collapse.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/collapse.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/collapse.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/collapse.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_delete.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_delete.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_delete.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_delete.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_insert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_insert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_insert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_insert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_merge.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_merge.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_merge.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_merge.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/columnstore_index_update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/columnstore_index_update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/compute_scalar.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/compute_scalar.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/compute_scalar.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/compute_scalar.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/compute_to_control_node.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/compute_to_control_node.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/compute_to_control_node.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/compute_to_control_node.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/concatenation.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/concatenation.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/concatenation.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/concatenation.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/const_table_get.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/const_table_get.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/const_table_get.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/const_table_get.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/constant_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/constant_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/constant_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/constant_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/control_to_compute_nodes.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/control_to_compute_nodes.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/control_to_compute_nodes.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/control_to_compute_nodes.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/convert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/convert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/convert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/convert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/cursor_catch_all.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/cursor_catch_all.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/cursor_catch_all.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/cursor_catch_all.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/declare.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/declare.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/declare.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/declare.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/delete.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/delete.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/delete.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/delete.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/deleted_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/deleted_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/deleted_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/deleted_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/dynamic.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/dynamic.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/dynamic.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/dynamic.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/external_broadcast.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/external_broadcast.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/external_broadcast.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/external_broadcast.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/external_export.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/external_export.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/external_export.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/external_export.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/external_local_streaming.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/external_local_streaming.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/external_local_streaming.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/external_local_streaming.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/external_round_robin.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/external_round_robin.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/external_round_robin.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/external_round_robin.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/external_shuffle.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/external_shuffle.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/external_shuffle.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/external_shuffle.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/fetch_query.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/fetch_query.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/fetch_query.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/fetch_query.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/filter.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/filter.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/filter.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/filter.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/foreign_key_references_check.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/foreign_key_references_check.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/foreign_key_references_check.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/foreign_key_references_check.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/get.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/get.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/get.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/get.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/group_by_aggregate.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/group_by_aggregate.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/group_by_aggregate.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/group_by_aggregate.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/hash_match.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/hash_match.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/hash_match.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/hash_match.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/hash_match_root.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/hash_match_root.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/hash_match_root.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/hash_match_root.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/hash_match_team.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/hash_match_team.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/hash_match_team.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/hash_match_team.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/if.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/if.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/if.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/if.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/index_delete.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/index_delete.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/index_delete.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/index_delete.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/index_insert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/index_insert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/index_insert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/index_insert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/index_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/index_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/index_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/index_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/index_seek.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/index_seek.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/index_seek.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/index_seek.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/index_spool.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/index_spool.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/index_spool.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/index_spool.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/index_update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/index_update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/index_update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/index_update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/insert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/insert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/insert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/insert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/inserted_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/inserted_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/inserted_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/inserted_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/intrinsic.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/intrinsic.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/intrinsic.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/intrinsic.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/iterator_catch_all.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/iterator_catch_all.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/iterator_catch_all.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/iterator_catch_all.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/join.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/join.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/join.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/join.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/keyset.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/keyset.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/keyset.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/keyset.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/language_construct_catch_all.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/language_construct_catch_all.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/language_construct_catch_all.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/language_construct_catch_all.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/locate.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/locate.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/locate.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/locate.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/log_row_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/log_row_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/log_row_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/log_row_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/merge_interval.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/merge_interval.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/merge_interval.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/merge_interval.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/merge_join.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/merge_join.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/merge_join.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/merge_join.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/nested_loops.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/nested_loops.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/nested_loops.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/nested_loops.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/parallelism.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/parallelism.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/parallelism.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/parallelism.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/parameter_table_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/parameter_table_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/parameter_table_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/parameter_table_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/population_query.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/population_query.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/population_query.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/population_query.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/predict.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/predict.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/predict.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/predict.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/print.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/print.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/print.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/print.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/project.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/project.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/project.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/project.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/rank.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/rank.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/rank.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/rank.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/refresh_query.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/refresh_query.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/refresh_query.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/refresh_query.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_delete.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_delete.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_delete.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_delete.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_index_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_index_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_index_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_index_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_index_seek.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_index_seek.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_index_seek.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_index_seek.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_insert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_insert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_insert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_insert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_query.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_query.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_query.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_query.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/remote_update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/remote_update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/result.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/result.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/result.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/result.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/rid_lookup.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/rid_lookup.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/rid_lookup.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/rid_lookup.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/row_count_spool.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/row_count_spool.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/row_count_spool.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/row_count_spool.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/segment.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/segment.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/segment.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/segment.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/sequence.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/sequence.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/sequence.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/sequence.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/sequence_project.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/sequence_project.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/sequence_project.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/sequence_project.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/set_function.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/set_function.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/set_function.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/set_function.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/shuffle.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/shuffle.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/shuffle.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/shuffle.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/single_source_round_robin.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/single_source_round_robin.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/single_source_round_robin.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/single_source_round_robin.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/single_source_shuffle.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/single_source_shuffle.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/single_source_shuffle.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/single_source_shuffle.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/snapshot.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/snapshot.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/snapshot.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/snapshot.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/sort.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/sort.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/sort.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/sort.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/split.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/split.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/split.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/split.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/spool.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/spool.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/spool.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/spool.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/sql.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/sql.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/sql.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/sql.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/stream_aggregate.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/stream_aggregate.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/stream_aggregate.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/stream_aggregate.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/switch.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/switch.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/switch.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/switch.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_delete.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_delete.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_delete.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_delete.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_insert.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_insert.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_insert.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_insert.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_merge.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_merge.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_merge.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_merge.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_scan.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_scan.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_scan.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_scan.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_spool.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_spool.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_spool.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_spool.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/table_valued_function.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/table_valued_function.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/table_valued_function.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/table_valued_function.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/top.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/top.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/top.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/top.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/trim.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/trim.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/trim.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/trim.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/udx.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/udx.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/udx.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/udx.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/union.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/union.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/union.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/union.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/union_all.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/union_all.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/union_all.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/union_all.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/update.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/update.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/update.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/update.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/images/icons/window_aggregate.png b/src/sql/workbench/contrib/executionPlan/browser/images/icons/window_aggregate.png similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/images/icons/window_aggregate.png rename to src/sql/workbench/contrib/executionPlan/browser/images/icons/window_aggregate.png diff --git a/src/sql/workbench/contrib/queryplan2/browser/media/queryPlan2.css b/src/sql/workbench/contrib/executionPlan/browser/media/executionPlan.css similarity index 69% rename from src/sql/workbench/contrib/queryplan2/browser/media/queryPlan2.css rename to src/sql/workbench/contrib/executionPlan/browser/media/executionPlan.css index 12d149abf6..0fc7fca29f 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/media/queryPlan2.css +++ b/src/sql/workbench/contrib/executionPlan/browser/media/executionPlan.css @@ -3,8 +3,8 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -/* Styling for the queryplan tab container */ -.qps-container { +/* Styling for the execution plan tab container */ +.eps-container { width: 100%; height: 100%; overflow: scroll; @@ -13,8 +13,8 @@ flex-wrap: nowrap; } -/* Styling for the a queryplan container in the tab */ -.qps-container .query-plan { +/* Styling for the a execution plan container in the tab */ +.eps-container .execution-plan { width: 100%; min-height: 500px; display: flex; @@ -22,8 +22,8 @@ flex: 1; } -/* horizontal height resizing sash container that is below a queryplan */ -.qps-container .query-plan-sash { +/* horizontal height resizing sash container that is below a execution plan */ +.eps-container .execution-plan-sash { width: 100%; height: 3px; position: relative; @@ -33,12 +33,12 @@ The actual sash element constructed by code. Important is used here because the width of the sash is fixed. However we always want it to be the width of the container it is resizing. */ -.qps-container .query-plan-sash > div { +.eps-container .execution-plan-sash > div { width: 100% !important; } -/* Container that contains showplan header, description and graph diagram */ -.qps-container .query-plan .plan { +/* Container that contains execution plan header, description and graph diagram */ +.eps-container .execution-plan .plan { flex: 1; overflow: hidden; display: flex; @@ -47,7 +47,7 @@ However we always want it to be the width of the container it is resizing. } /* Container that contains views made by the action-bar actions */ -.qps-container .query-plan .plan .plan-action-container { +.eps-container .execution-plan .plan .plan-action-container { display: flex; flex-direction: column; position: absolute; @@ -55,13 +55,13 @@ However we always want it to be the width of the container it is resizing. } /* views created by the action-bar actions */ -.qps-container .query-plan .plan .plan-action-container .child { +.eps-container .execution-plan .plan .plan-action-container .child { flex: 0 0 25px; margin-left: auto; } /* Search node action view */ -.qps-container .query-plan .plan .plan-action-container .search-node-widget { +.eps-container .execution-plan .plan .plan-action-container .search-node-widget { display: flex; flex-direction: row; padding: 5px; @@ -70,17 +70,17 @@ However we always want it to be the width of the container it is resizing. } /* input bar styling in search node action view */ -.qps-container .query-plan .plan .plan-action-container .search-node-widget .select-container{ +.eps-container .execution-plan .plan .plan-action-container .search-node-widget .select-container{ margin-left: 5px; } /* styling for select element in search node action view */ -.qps-container .query-plan .plan .plan-action-container .search-node-widget .select-container > select{ +.eps-container .execution-plan .plan .plan-action-container .search-node-widget .select-container > select{ height: 100%; } /* Custom zoom action view */ -.qps-container .query-plan .plan .plan-action-container .custom-zoom-view { +.eps-container .execution-plan .plan .plan-action-container .custom-zoom-view { display: flex; flex-direction: row; padding: 5px; @@ -88,28 +88,28 @@ However we always want it to be the width of the container it is resizing. width: 240px; } -/* query plan header that contains the relative query cost, query statement and recommendations */ -.qps-container .query-plan .plan .header { +/* execution plan header that contains the relative query cost, query statement and recommendations */ +.eps-container .execution-plan .plan .header { padding: 5px; font-weight: bolder; } -/* each link in query plan recommendations */ -.qps-container .query-plan .plan .header .recommendations > a { +/* each link in execution plan recommendations */ +.eps-container .execution-plan .plan .header .recommendations > a { width: fit-content; align-items: left; text-align: left; } -/* graph diagram in query plan */ -.qps-container .query-plan .plan .diagram { +/* graph diagram in execution plan */ +.eps-container .execution-plan .plan .diagram { width: 100%; height: 100%; overflow: scroll; } -/* Properties view in query plan */ -.qps-container .query-plan .properties { +/* Properties view in execution plan */ +.eps-container .execution-plan .properties { flex: 0 0 500px; overflow: hidden; width: 500px; @@ -120,7 +120,7 @@ However we always want it to be the width of the container it is resizing. } /* Title container of the properties view */ -.qps-container .query-plan .properties .title { +.eps-container .execution-plan .properties .title { line-height: 30px; height: 22px; font-size: 11px; @@ -136,7 +136,7 @@ However we always want it to be the width of the container it is resizing. } /* text in title container of properties view */ -.qps-container .query-plan .properties .title .text { +.eps-container .execution-plan .properties .title .text { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -147,7 +147,7 @@ However we always want it to be the width of the container it is resizing. } /* action bar in the title container for the properties view. This contains the close icon */ -.qps-container .query-plan .properties .title .action-bar { +.eps-container .execution-plan .properties .title .action-bar { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -159,7 +159,7 @@ However we always want it to be the width of the container it is resizing. } /* Operation name styling in the properties view. */ -.qps-container .query-plan .properties .operation-name { +.eps-container .execution-plan .properties .operation-name { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -173,19 +173,19 @@ However we always want it to be the width of the container it is resizing. } /* Properties table container in properties view */ -.qps-container .query-plan .properties .table-container { +.eps-container .execution-plan .properties .table-container { overflow-y: scroll; flex: 1; flex-grow: 1; } -/* Action bar for the query plan */ -.qps-container .query-plan .action-bar-container { +/* Action bar for the execution plan */ +.eps-container .execution-plan .action-bar-container { flex: 0 0 25px; } /* styling for the column headers in the properties table */ -.qps-container .properties .table-container .prop-table-header { +.eps-container .properties .table-container .prop-table-header { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -197,22 +197,22 @@ However we always want it to be the width of the container it is resizing. text-transform: uppercase; } -.qps-container .properties-header { +.eps-container .properties-header { font-weight: bold; padding: 5px; } -.qps-container .properties-toggle { +.eps-container .properties-toggle { height: 9px; width: 9px; display: inline-block; } -.qps-container .properties-toggle .expand { +.eps-container .properties-toggle .expand { background: url(../images/expand.gif) no-repeat center center; } -.qps-container .properties-toggle .collapse { +.eps-container .properties-toggle .collapse { background: url(../images/collapse.gif) no-repeat center center; } @@ -226,84 +226,84 @@ However we always want it to be the width of the container it is resizing. z-index: 3; } -.qps-container .save-plan-icon { +.eps-container .save-plan-icon { background-image: url(../images/actionIcons/save.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .open-properties-icon { +.eps-container .open-properties-icon { background-image: url(../images/actionIcons/openProperties.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .open-query-icon { +.eps-container .open-query-icon { background-image: url(../images/actionIcons/openQuery.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .open-plan-file-icon { +.eps-container .open-plan-file-icon { background-image: url(../images/actionIcons/openPlanFile.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .search-icon { +.eps-container .search-icon { background-image: url(../images/actionIcons/search.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .sort-alphabetically-icon { +.eps-container .sort-alphabetically-icon { background-image: url(../images/actionIcons/sortAlphabetically.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .sort-display-order-icon { +.eps-container .sort-display-order-icon { background-image: url(../images/actionIcons/sortByDisplayOrder.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .zoom-in-icon { +.eps-container .zoom-in-icon { background-image: url(../images/actionIcons/zoomIn.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .zoom-out-icon { +.eps-container .zoom-out-icon { background-image: url(../images/actionIcons/zoomOut.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .custom-zoom-icon { +.eps-container .custom-zoom-icon { background-image: url(../images/actionIcons/customZoom.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .zoom-to-fit-icon { +.eps-container .zoom-to-fit-icon { background-image: url(../images/actionIcons/zoomToFit.svg); background-size: 16px 16px; background-position: center; background-repeat: no-repeat; } -.qps-container .zoom-icon { +.eps-container .zoom-icon { background-image: url(../images/actionIcons/zoom.svg); background-size: 16px 16px; background-position: center; diff --git a/src/sql/workbench/contrib/queryplan2/browser/planHeader.ts b/src/sql/workbench/contrib/executionPlan/browser/planHeader.ts similarity index 100% rename from src/sql/workbench/contrib/queryplan2/browser/planHeader.ts rename to src/sql/workbench/contrib/executionPlan/browser/planHeader.ts diff --git a/src/sql/workbench/contrib/queryplan2/browser/widgets/customZoomWidget.ts b/src/sql/workbench/contrib/executionPlan/browser/widgets/customZoomWidget.ts similarity index 82% rename from src/sql/workbench/contrib/queryplan2/browser/widgets/customZoomWidget.ts rename to src/sql/workbench/contrib/executionPlan/browser/widgets/customZoomWidget.ts index 300033dae4..543006fca7 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/widgets/customZoomWidget.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/widgets/customZoomWidget.ts @@ -6,8 +6,8 @@ import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox'; import { ActionBar } from 'sql/base/browser/ui/taskbar/actionbar'; import { attachInputBoxStyler } from 'sql/platform/theme/common/styler'; -import { QueryPlanWidgetBase } from 'sql/workbench/contrib/queryplan2/browser/queryPlanWidgetBase'; -import { QueryPlan2 } from 'sql/workbench/contrib/queryplan2/browser/queryPlan'; +import { ExecutionPlanWidgetBase } from 'sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase'; +import { ExecutionPlan } from 'sql/workbench/contrib/executionPlan/browser/executionPlan'; import * as DOM from 'vs/base/browser/dom'; import { Action } from 'vs/base/common/actions'; import { Codicon } from 'vs/base/common/codicons'; @@ -15,15 +15,15 @@ import { localize } from 'vs/nls'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { IThemeService } from 'vs/platform/theme/common/themeService'; -import { zoomIconClassNames } from 'sql/workbench/contrib/queryplan2/browser/constants'; +import { zoomIconClassNames } from 'sql/workbench/contrib/executionPlan/browser/constants'; import { Button } from 'sql/base/browser/ui/button/button'; -export class CustomZoomWidget extends QueryPlanWidgetBase { +export class CustomZoomWidget extends ExecutionPlanWidgetBase { private _actionBar: ActionBar; public customZoomInputBox: InputBox; constructor( - public readonly queryPlanView: QueryPlan2, + public readonly executionPlanView: ExecutionPlan, @IContextViewService public readonly contextViewService: IContextViewService, @IThemeService public readonly themeService: IThemeService, @INotificationService public readonly notificationService: INotificationService @@ -39,7 +39,7 @@ export class CustomZoomWidget extends QueryPlanWidgetBase { }); attachInputBoxStyler(this.customZoomInputBox, this.themeService); - const currentZoom = queryPlanView.azdataGraphDiagram.graph.view.getScale() * 100; + const currentZoom = executionPlanView.azdataGraphDiagram.graph.view.getScale() * 100; // Setting initial value to graph's current zoom this.customZoomInputBox.value = Math.round(currentZoom).toString(); @@ -50,7 +50,7 @@ export class CustomZoomWidget extends QueryPlanWidgetBase { if (ev.key === 'Enter') { await new CustomZoomAction().run(self); } else if (ev.key === 'Escape') { - queryPlanView.planActionView.removeWidget(self); + executionPlanView.planActionView.removeWidget(self); } }; @@ -87,8 +87,8 @@ export class CustomZoomAction extends Action { public override async run(context: CustomZoomWidget): Promise { const newValue = parseInt(context.customZoomInputBox.value); if (newValue <= 200 && newValue >= 1) { // Getting max and min zoom values from SSMS - context.queryPlanView.azdataGraphDiagram.graph.view.setScale(newValue / 100); - context.queryPlanView.planActionView.removeWidget(context); + context.executionPlanView.azdataGraphDiagram.graph.view.setScale(newValue / 100); + context.executionPlanView.planActionView.removeWidget(context); } else { context.notificationService.error( localize('invalidCustomZoomError', "Select a zoom value between 1 to 200") @@ -106,7 +106,7 @@ export class CancelZoom extends Action { } public override async run(context: CustomZoomWidget): Promise { - context.queryPlanView.planActionView.removeWidget(context); + context.executionPlanView.planActionView.removeWidget(context); } } diff --git a/src/sql/workbench/contrib/queryplan2/browser/widgets/nodeSearchWidget.ts b/src/sql/workbench/contrib/executionPlan/browser/widgets/nodeSearchWidget.ts similarity index 88% rename from src/sql/workbench/contrib/queryplan2/browser/widgets/nodeSearchWidget.ts rename to src/sql/workbench/contrib/executionPlan/browser/widgets/nodeSearchWidget.ts index dc2ee6e77c..2a076b8111 100644 --- a/src/sql/workbench/contrib/queryplan2/browser/widgets/nodeSearchWidget.ts +++ b/src/sql/workbench/contrib/executionPlan/browser/widgets/nodeSearchWidget.ts @@ -3,12 +3,12 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { QueryPlanWidgetBase } from 'sql/workbench/contrib/queryplan2/browser/queryPlanWidgetBase'; +import { ExecutionPlanWidgetBase } from 'sql/workbench/contrib/executionPlan/browser/executionPlanWidgetBase'; import { ActionBar } from 'sql/base/browser/ui/taskbar/actionbar'; import * as DOM from 'vs/base/browser/dom'; import { localize } from 'vs/nls'; import { Codicon } from 'vs/base/common/codicons'; -import { InternalExecutionPlanNode, QueryPlan2 } from 'sql/workbench/contrib/queryplan2/browser/queryPlan'; +import { InternalExecutionPlanNode, ExecutionPlan } from 'sql/workbench/contrib/executionPlan/browser/executionPlan'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { attachInputBoxStyler, attachSelectBoxStyler } from 'sql/platform/theme/common/styler'; import { IThemeService } from 'vs/platform/theme/common/themeService'; @@ -17,10 +17,10 @@ import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox'; import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox'; import { isString } from 'vs/base/common/types'; -const CONTAINS_DISPLAY_STRING = localize("queryPlanSearchTypeContains", 'Contains'); -const EQUALS_DISPLAY_STRING = localize("queryPlanSearchTypeEquals", 'Equals'); +const CONTAINS_DISPLAY_STRING = localize("executionPlanSearchTypeContains", 'Contains'); +const EQUALS_DISPLAY_STRING = localize("executionPlanSearchTypeEquals", 'Equals'); -export class NodeSearchWidget extends QueryPlanWidgetBase { +export class NodeSearchWidget extends ExecutionPlanWidgetBase { private _propertyNameSelectBoxContainer: HTMLElement; private _propertyNameSelectBox: SelectBox; @@ -36,7 +36,7 @@ export class NodeSearchWidget extends QueryPlanWidgetBase { private _actionBar: ActionBar; constructor( - public readonly queryPlanView: QueryPlan2, + public readonly executionPlanView: ExecutionPlan, @IContextViewService public readonly contextViewService: IContextViewService, @IThemeService public readonly themeService: IThemeService @@ -46,7 +46,7 @@ export class NodeSearchWidget extends QueryPlanWidgetBase { // property name dropdown this._propertyNameSelectBoxContainer = DOM.$('.search-widget-property-name-select-box .dropdown-container'); this.container.appendChild(this._propertyNameSelectBoxContainer); - const propDropdownOptions = [...queryPlanView.graphElementPropertiesSet].sort(); + const propDropdownOptions = [...executionPlanView.graphElementPropertiesSet].sort(); this._propertyNameSelectBox = new SelectBox(propDropdownOptions, propDropdownOptions[0], this.contextViewService, this._propertyNameSelectBoxContainer); attachSelectBoxStyler(this._propertyNameSelectBox, this.themeService); this._propertyNameSelectBoxContainer.style.width = '150px'; @@ -114,7 +114,7 @@ export class NodeSearchWidget extends QueryPlanWidgetBase { this._usePreviousSearchResult = true; // Doing depth first search in the graphModel to find nodes with matching prop values. - const graphModel = this.queryPlanView.graphModel; + const graphModel = this.executionPlanView.graphModel; const stack: InternalExecutionPlanNode[] = []; stack.push(graphModel.root); @@ -143,10 +143,10 @@ export class NodeSearchWidget extends QueryPlanWidgetBase { } // Getting the node at search index - const resultCell = this.queryPlanView.azdataGraphDiagram.graph.model.getCell(this._searchResults[this._currentSearchResultIndex]); + const resultCell = this.executionPlanView.azdataGraphDiagram.graph.model.getCell(this._searchResults[this._currentSearchResultIndex]); // Selecting the node on graph diagram - this.queryPlanView.azdataGraphDiagram.graph.setSelectionCell(resultCell); - this.queryPlanView.propertiesView.graphElement = this.queryPlanView.searchNodes(resultCell.id); + this.executionPlanView.azdataGraphDiagram.graph.setSelectionCell(resultCell); + this.executionPlanView.propertiesView.graphElement = this.executionPlanView.searchNodes(resultCell.id); /** * The selected graph node might be hidden/partially visible if the graph is overflowing the parent container. @@ -164,13 +164,13 @@ export class NodeSearchWidget extends QueryPlanWidgetBase { * 6. Smoothly scroll to the left top x and y calculated in step 4, 5. */ - const cellRect = this.queryPlanView.azdataGraphDiagram.graph.getCellBounds(resultCell); + const cellRect = this.executionPlanView.azdataGraphDiagram.graph.getCellBounds(resultCell); const cellMidPoint: Point = { x: cellRect.x + cellRect.width / 2, y: cellRect.y + cellRect.height / 2, }; - const graphContainer = this.queryPlanView.azdataGraphDiagram.container; + const graphContainer = this.executionPlanView.azdataGraphDiagram.container; const containerBoundingRect = graphContainer.getBoundingClientRect(); const leftTopScrollPoint: Point = { @@ -242,6 +242,6 @@ export class CancelSearch extends Action { } public override async run(context: NodeSearchWidget): Promise { - context.queryPlanView.planActionView.removeWidget(context); + context.executionPlanView.planActionView.removeWidget(context); } } diff --git a/src/sql/workbench/contrib/query/browser/queryResultsView.ts b/src/sql/workbench/contrib/query/browser/queryResultsView.ts index f9460643df..d6ab2b6d61 100644 --- a/src/sql/workbench/contrib/query/browser/queryResultsView.ts +++ b/src/sql/workbench/contrib/query/browser/queryResultsView.ts @@ -24,7 +24,7 @@ import { URI } from 'vs/base/common/uri'; import { attachTabbedPanelStyler } from 'sql/workbench/common/styler'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { ILogService } from 'vs/platform/log/common/log'; -import { QueryPlan2Tab } from 'sql/workbench/contrib/queryplan2/browser/queryPlan'; +import { ExecutionPlanTab } from 'sql/workbench/contrib/executionPlan/browser/executionPlan'; class MessagesView extends Disposable implements IPanelView { private messagePanel: MessagePanel; @@ -162,7 +162,7 @@ export class QueryResultsView extends Disposable { private resultsTab: ResultsTab; private messagesTab: MessagesTab; private chartTab: ChartTab; - private qp2Tab: QueryPlan2Tab; + private executionPlanTab: ExecutionPlanTab; private topOperationsTab: TopOperationsTab; private dynamicModelViewTabs: QueryModelViewTab[] = []; @@ -182,7 +182,7 @@ export class QueryResultsView extends Disposable { this.chartTab = this._register(new ChartTab(instantiationService)); this._panelView = this._register(new TabbedPanel(container, { showHeaderWhenSingleView: true })); this._register(attachTabbedPanelStyler(this._panelView, themeService)); - this.qp2Tab = this._register(this.instantiationService.createInstance(QueryPlan2Tab)); + this.executionPlanTab = this._register(this.instantiationService.createInstance(ExecutionPlanTab)); this.topOperationsTab = this._register(new TopOperationsTab(instantiationService)); this._panelView.pushTab(this.resultsTab); @@ -246,14 +246,14 @@ export class QueryResultsView extends Disposable { } })); - this.runnerDisposables.add(runner.onQueryPlan2Available(e => { - if (this.qp2Tab) { - if (!this.input.state.visibleTabs.has(this.qp2Tab.identifier)) { + this.runnerDisposables.add(runner.onExecutionPlanAvailable(e => { + if (this.executionPlanTab) { + if (!this.input.state.visibleTabs.has(this.executionPlanTab.identifier)) { this.showPlan2(); } // Adding graph to state and tab as they become available - this.input.state.queryPlan2State.graphs.push(...e.planGraphs); - this.qp2Tab.view.addGraphs(e.planGraphs); + this.input.state.executionPlanState.graphs.push(...e.planGraphs); + this.executionPlanTab.view.addGraphs(e.planGraphs); } })); @@ -263,10 +263,10 @@ export class QueryResultsView extends Disposable { this._panelView.removeTab(this.chartTab.identifier); } - if (this.input?.state.visibleTabs.has(this.qp2Tab.identifier) && !this._panelView.contains(this.qp2Tab.identifier)) { - this._panelView.pushTab(this.qp2Tab); - } else if (!this.input?.state.visibleTabs.has(this.qp2Tab.identifier) && this._panelView.contains(this.qp2Tab.identifier)) { - this._panelView.removeTab(this.qp2Tab.identifier); + if (this.input?.state.visibleTabs.has(this.executionPlanTab.identifier) && !this._panelView.contains(this.executionPlanTab.identifier)) { + this._panelView.pushTab(this.executionPlanTab); + } else if (!this.input?.state.visibleTabs.has(this.executionPlanTab.identifier) && this._panelView.contains(this.executionPlanTab.identifier)) { + this._panelView.removeTab(this.executionPlanTab.identifier); } if (this.input?.state.visibleTabs.has(this.topOperationsTab.identifier) && !this._panelView.contains(this.topOperationsTab.identifier)) { @@ -321,12 +321,12 @@ export class QueryResultsView extends Disposable { this._input = input; this.runnerDisposables.clear(); - [this.resultsTab, this.messagesTab, this.qp2Tab, this.topOperationsTab, this.chartTab].forEach(t => t.clear()); + [this.resultsTab, this.messagesTab, this.executionPlanTab, this.topOperationsTab, this.chartTab].forEach(t => t.clear()); this.dynamicModelViewTabs.forEach(t => t.clear()); if (input) { this.resultsTab.view.state = input.state.gridPanelState; - this.qp2Tab.view.addGraphs(input.state.queryPlan2State.graphs); + this.executionPlanTab.view.addGraphs(input.state.executionPlanState.graphs); this.topOperationsTab.view.setState(input.state.topOperationsState); this.chartTab.view.state = input.state.chartState; this.dynamicModelViewTabs.forEach((dynamicTab: QueryModelViewTab) => { @@ -417,12 +417,12 @@ export class QueryResultsView extends Disposable { } public showPlan2() { - if (!this._panelView.contains(this.qp2Tab.identifier)) { - this.input?.state.visibleTabs.add(this.qp2Tab.identifier); - if (!this._panelView.contains(this.qp2Tab.identifier)) { - this._panelView.pushTab(this.qp2Tab); + if (!this._panelView.contains(this.executionPlanTab.identifier)) { + this.input?.state.visibleTabs.add(this.executionPlanTab.identifier); + if (!this._panelView.contains(this.executionPlanTab.identifier)) { + this._panelView.pushTab(this.executionPlanTab); } - this._panelView.showTab(this.qp2Tab.identifier); + this._panelView.showTab(this.executionPlanTab.identifier); } } @@ -433,10 +433,10 @@ export class QueryResultsView extends Disposable { } public hidePlan2() { - if (this._panelView.contains(this.qp2Tab.identifier)) { - this.qp2Tab.clear(); - this.input.state.queryPlan2State.clearQueryPlan2State(); - this._panelView.removeTab(this.qp2Tab.identifier); + if (this._panelView.contains(this.executionPlanTab.identifier)) { + this.executionPlanTab.clear(); + this.input.state.executionPlanState.clearExecutionPlanState(); + this._panelView.removeTab(this.executionPlanTab.identifier); } } diff --git a/src/sql/workbench/services/query/common/queryManagement.ts b/src/sql/workbench/services/query/common/queryManagement.ts index 611f2d0586..016c09233c 100644 --- a/src/sql/workbench/services/query/common/queryManagement.ts +++ b/src/sql/workbench/services/query/common/queryManagement.ts @@ -332,7 +332,7 @@ export class QueryManagementService implements IQueryManagementService { this._notify(resultSetInfo.ownerUri, (runner: QueryRunner) => { runner.handleResultSetUpdated(resultSetInfo.resultSetSummary); if (resultSetInfo.executionPlans && this._configurationService.getValue('workbench.enablePreviewFeatures')) { - runner.handleQueryPlan2Available(resultSetInfo.executionPlans); + runner.handleExecutionPlanAvailable(resultSetInfo.executionPlans); } }); } diff --git a/src/sql/workbench/services/query/common/queryModel.ts b/src/sql/workbench/services/query/common/queryModel.ts index 9cae28d522..731342e73e 100644 --- a/src/sql/workbench/services/query/common/queryModel.ts +++ b/src/sql/workbench/services/query/common/queryModel.ts @@ -31,7 +31,7 @@ export interface IQueryPlanInfo { planXml: string; } -export interface IQueryPlan2Info { +export interface IExecutionPlanInfo { providerId: string; fileUri: string; planGraphs: ExecutionPlanGraph[]; diff --git a/src/sql/workbench/services/query/common/queryModelService.ts b/src/sql/workbench/services/query/common/queryModelService.ts index a16a0a039a..9fe1911551 100644 --- a/src/sql/workbench/services/query/common/queryModelService.ts +++ b/src/sql/workbench/services/query/common/queryModelService.ts @@ -352,7 +352,7 @@ export class QueryModelService implements IQueryModelService { this._onQueryEvent.fire(event); }); - queryRunner.onQueryPlan2Available(qp2Info => { + queryRunner.onExecutionPlanAvailable(qp2Info => { // fire extensibility API event let event: IQueryEvent = { type: 'executionPlan', diff --git a/src/sql/workbench/services/query/common/queryRunner.ts b/src/sql/workbench/services/query/common/queryRunner.ts index cda05f9c66..ed877a9355 100644 --- a/src/sql/workbench/services/query/common/queryRunner.ts +++ b/src/sql/workbench/services/query/common/queryRunner.ts @@ -6,7 +6,7 @@ import { IQueryManagementService, QueryCancelResult, ExecutionPlanOptions } from 'sql/workbench/services/query/common/queryManagement'; import * as Utils from 'sql/platform/connection/common/utils'; import { Deferred } from 'sql/base/common/promise'; -import { IQueryPlanInfo, IQueryPlan2Info } from 'sql/workbench/services/query/common/queryModel'; +import { IQueryPlanInfo, IExecutionPlanInfo } from 'sql/workbench/services/query/common/queryModel'; import { ResultSerializer, SaveFormat } from 'sql/workbench/services/query/common/resultSerializer'; import * as azdata from 'azdata'; @@ -73,8 +73,8 @@ export default class QueryRunner extends Disposable { private readonly _onQueryPlanAvailable = this._register(new Emitter()); public readonly onQueryPlanAvailable = this._onQueryPlanAvailable.event; - private readonly _onQueryPlan2Available = this._register(new Emitter()); - public readonly onQueryPlan2Available = this._onQueryPlan2Available.event; + private readonly _onExecutionPlanAvailable = this._register(new Emitter()); + public readonly onExecutionPlanAvailable = this._onExecutionPlanAvailable.event; private readonly _onVisualize = this._register(new Emitter()); public readonly onVisualize = this._onVisualize.event; @@ -387,12 +387,12 @@ export default class QueryRunner extends Disposable { } } - public handleQueryPlan2Available(queryPlans: azdata.ExecutionPlanGraph[] | undefined) { - if (queryPlans) { - this._onQueryPlan2Available.fire({ + public handleExecutionPlanAvailable(executionPlans: azdata.ExecutionPlanGraph[] | undefined) { + if (executionPlans) { + this._onExecutionPlanAvailable.fire({ providerId: mssqlProviderName, fileUri: this.uri, - planGraphs: queryPlans + planGraphs: executionPlans }); } }