Redoing Execution Plan Comparison Editor (#19375)

* Adding code for execution plan comparison editor

* Handling floating promises and fixing a loc string

* Fixing some polygon stuff

* Fixing azdatagraph null check bug

* Adding progress notification for similar areas

* Removing some floating promises

* Fixing button enabled state
This commit is contained in:
Aasim Khan
2022-05-23 14:33:18 -07:00
committed by GitHub
parent 000923207e
commit 8bb6b5fc1a
34 changed files with 1601 additions and 101 deletions

View File

@@ -133,5 +133,23 @@ export class ExecutionPlanService implements IExecutionPlanService {
return this._capabilitiesService.getCapabilities(providerId).connection.supportedExecutionPlanFileExtensions;
}
getSupportedExecutionPlanExtensions(providerId: string): string[] | undefined {
if (providerId) {
return this._capabilitiesService.getCapabilities(providerId).connection.supportedExecutionPlanFileExtensions;
} else {
const supportedFileExtensionsSet: Set<string> = new Set();
Object.keys(this._capabilitiesService.providers).forEach(v => {
const extensions = this._capabilitiesService.getCapabilities(v).connection.supportedExecutionPlanFileExtensions;
if (extensions) {
extensions.forEach(ext => {
supportedFileExtensionsSet.add(ext);
});
}
});
return [...supportedFileExtensionsSet];
}
}
_serviceBrand: undefined;
}

View File

@@ -30,7 +30,8 @@ export interface IExecutionPlanService {
compareExecutionPlanGraph(firstPlanFile: azdata.executionPlan.ExecutionPlanGraphInfo, secondPlanFile: azdata.executionPlan.ExecutionPlanGraphInfo): Promise<azdata.executionPlan.ExecutionPlanComparisonResult>;
/**
* Get execution plan file extensions supported by the provider.
* Get execution plan file extensions supported by all registered providers.
* @param providerId optional parameter to get extensions only supported by a particular provider.
*/
getSupportedExecutionPlanExtensionsForProvider(providerId: string): string[];
getSupportedExecutionPlanExtensions(providerId?: string): string[];
}