diff --git a/package.json b/package.json
index 5bab275196..47aa750dd6 100755
--- a/package.json
+++ b/package.json
@@ -76,7 +76,7 @@
"angular2-grid": "2.0.6",
"ansi_up": "^5.1.0",
"applicationinsights": "1.0.8",
- "azdataGraph": "github:Microsoft/azdataGraph#0.0.29",
+ "azdataGraph": "github:Microsoft/azdataGraph#0.0.32",
"chart.js": "^2.9.4",
"chokidar": "3.5.1",
"graceful-fs": "4.2.8",
diff --git a/remote/package.json b/remote/package.json
index 691afbdadb..95b94efe1c 100755
--- a/remote/package.json
+++ b/remote/package.json
@@ -17,7 +17,7 @@
"applicationinsights": "1.0.8",
"angular2-grid": "2.0.6",
"ansi_up": "^5.1.0",
- "azdataGraph": "github:Microsoft/azdataGraph#0.0.29",
+ "azdataGraph": "github:Microsoft/azdataGraph#0.0.32",
"chart.js": "^2.9.4",
"cookie": "^0.4.0",
"graceful-fs": "4.2.8",
diff --git a/remote/web/package.json b/remote/web/package.json
index 8d95399df0..b8671c6be4 100755
--- a/remote/web/package.json
+++ b/remote/web/package.json
@@ -15,7 +15,7 @@
"@vscode/vscode-languagedetection": "1.0.21",
"angular2-grid": "2.0.6",
"ansi_up": "^5.1.0",
- "azdataGraph": "github:Microsoft/azdataGraph#0.0.29",
+ "azdataGraph": "github:Microsoft/azdataGraph#0.0.32",
"chart.js": "^2.9.4",
"gridstack": "^3.1.3",
"kburtram-query-plan": "2.6.1",
diff --git a/remote/web/yarn.lock b/remote/web/yarn.lock
index aee95ff330..3a9197542e 100644
--- a/remote/web/yarn.lock
+++ b/remote/web/yarn.lock
@@ -150,9 +150,9 @@ array-uniq@^1.0.2:
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-"azdataGraph@github:Microsoft/azdataGraph#0.0.29":
- version "0.0.29"
- resolved "https://codeload.github.com/Microsoft/azdataGraph/tar.gz/a4fb6daaffe19cbfaf8d5a33cd44ddedd597e228"
+"azdataGraph@github:Microsoft/azdataGraph#0.0.32":
+ version "0.0.32"
+ resolved "https://codeload.github.com/Microsoft/azdataGraph/tar.gz/96bc3b9c61e060ea3a4fa7ed2e556e814cf0060e"
chalk@^2.3.0, chalk@^2.4.1:
version "2.4.2"
diff --git a/remote/yarn.lock b/remote/yarn.lock
index f9f6fd2c38..916c76943f 100644
--- a/remote/yarn.lock
+++ b/remote/yarn.lock
@@ -198,9 +198,9 @@ array-uniq@^1.0.2:
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-"azdataGraph@github:Microsoft/azdataGraph#0.0.29":
- version "0.0.29"
- resolved "https://codeload.github.com/Microsoft/azdataGraph/tar.gz/a4fb6daaffe19cbfaf8d5a33cd44ddedd597e228"
+"azdataGraph@github:Microsoft/azdataGraph#0.0.32":
+ version "0.0.32"
+ resolved "https://codeload.github.com/Microsoft/azdataGraph/tar.gz/96bc3b9c61e060ea3a4fa7ed2e556e814cf0060e"
bindings@^1.5.0:
version "1.5.0"
diff --git a/src/sql/workbench/contrib/executionPlan/browser/azdataGraphView.ts b/src/sql/workbench/contrib/executionPlan/browser/azdataGraphView.ts
index b18f7bf1ca..55304f9def 100644
--- a/src/sql/workbench/contrib/executionPlan/browser/azdataGraphView.ts
+++ b/src/sql/workbench/contrib/executionPlan/browser/azdataGraphView.ts
@@ -8,7 +8,7 @@ import * as azdata from 'azdata';
import * as sqlExtHostType from 'sql/workbench/api/common/sqlExtHostTypes';
import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService';
import { isString } from 'vs/base/common/types';
-import { badgeIconPaths, executionPlanNodeIconPaths } from 'sql/workbench/contrib/executionPlan/browser/constants';
+import { badgeIconPaths, collapseExpandNodeIconPaths, executionPlanNodeIconPaths } from 'sql/workbench/contrib/executionPlan/browser/constants';
import { localize } from 'vs/nls';
import { Event, Emitter } from 'vs/base/common/event';
import { IColorTheme, ICssStyleCollector, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
@@ -38,7 +38,7 @@ export class AzdataGraphView {
) {
this._parentContainer.tabIndex = 0;
this._diagramModel = this.populate(this._executionPlan.root);
- this._diagram = new azdataGraph.azdataQueryPlan(this._parentContainer, this._diagramModel, executionPlanNodeIconPaths, badgeIconPaths);
+ this._diagram = new azdataGraph.azdataQueryPlan(this._parentContainer, this._diagramModel, executionPlanNodeIconPaths, badgeIconPaths, collapseExpandNodeIconPaths);
this.setGraphProperties();
this.selectElement(this._executionPlan.root);
this._cellInFocus = this._diagram.graph.getSelectionCell();
@@ -409,6 +409,10 @@ export class AzdataGraphView {
public clearSubtreePolygon(): void {
this._diagram.removeDrawnPolygons();
}
+
+ public disableNodeCollapse(disable: boolean): void {
+ this._diagram.disableNodeCollapse(disable);
+ }
}
export interface InternalExecutionPlanEdge extends azdata.executionPlan.ExecutionPlanEdge {
diff --git a/src/sql/workbench/contrib/executionPlan/browser/constants.ts b/src/sql/workbench/contrib/executionPlan/browser/constants.ts
index d4d1b55c19..c6838e3de6 100644
--- a/src/sql/workbench/contrib/executionPlan/browser/constants.ts
+++ b/src/sql/workbench/contrib/executionPlan/browser/constants.ts
@@ -257,6 +257,11 @@ export const badgeIconPaths = {
criticalWarning: imageBasePath + 'badge_critical_warning.svg'
};
+export const collapseExpandNodeIconPaths = {
+ collapse: imageBasePath + 'collapse.svg',
+ expand: imageBasePath + 'expand.svg'
+};
+
export const savePlanIconClassNames = 'ep-save-plan-icon';
export const openPropertiesIconClassNames = 'ep-open-properties-icon';
export const openQueryIconClassNames = 'ep-open-query-icon';
diff --git a/src/sql/workbench/contrib/executionPlan/browser/executionPlanComparisonEditorView.ts b/src/sql/workbench/contrib/executionPlan/browser/executionPlanComparisonEditorView.ts
index 59db618562..e59ede2b25 100644
--- a/src/sql/workbench/contrib/executionPlan/browser/executionPlanComparisonEditorView.ts
+++ b/src/sql/workbench/contrib/executionPlan/browser/executionPlanComparisonEditorView.ts
@@ -197,6 +197,8 @@ export class ExecutionPlanComparisonEditorView {
this._propertiesView.setTopElement(this._topPlanDiagramModels[e.index].root);
this._topPlanRecommendations.recommendations = this._topPlanDiagramModels[e.index].recommendations;
this._activeTopPlanIndex = e.index;
+ this._activeTopPlanDiagram.disableNodeCollapse(true);
+
await this.getSkeletonNodes();
});
attachSelectBoxStyler(this._topPlanDropdown, this.themeService);
@@ -223,6 +225,8 @@ export class ExecutionPlanComparisonEditorView {
this._propertiesView.setTopElement(this._bottomPlanDiagramModels[e.index].root);
this._bottomPlanRecommendations.recommendations = this._bottomPlanDiagramModels[e.index].recommendations;
this._activeBottomPlanIndex = e.index;
+ this._activeBottomPlanDiagram.disableNodeCollapse(true);
+
await this.getSkeletonNodes();
});
attachSelectBoxStyler(this._bottomPlanDropdown, this.themeService);
diff --git a/src/sql/workbench/contrib/executionPlan/browser/images/icons/collapse.svg b/src/sql/workbench/contrib/executionPlan/browser/images/icons/collapse.svg
new file mode 100644
index 0000000000..56f3f484f4
--- /dev/null
+++ b/src/sql/workbench/contrib/executionPlan/browser/images/icons/collapse.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/sql/workbench/contrib/executionPlan/browser/images/icons/expand.svg b/src/sql/workbench/contrib/executionPlan/browser/images/icons/expand.svg
new file mode 100644
index 0000000000..a281964e6c
--- /dev/null
+++ b/src/sql/workbench/contrib/executionPlan/browser/images/icons/expand.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f6b3514817..b854be1266 100755
--- a/yarn.lock
+++ b/yarn.lock
@@ -1891,9 +1891,9 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
-"azdataGraph@github:Microsoft/azdataGraph#0.0.29":
- version "0.0.29"
- resolved "https://codeload.github.com/Microsoft/azdataGraph/tar.gz/a4fb6daaffe19cbfaf8d5a33cd44ddedd597e228"
+"azdataGraph@github:Microsoft/azdataGraph#0.0.32":
+ version "0.0.32"
+ resolved "https://codeload.github.com/Microsoft/azdataGraph/tar.gz/96bc3b9c61e060ea3a4fa7ed2e556e814cf0060e"
bach@^1.0.0:
version "1.2.0"