Sync columnstore + Parallelism subtype icons from PerformanceStudio#903
Merged
erikdarlingdata merged 1 commit intodevfrom Apr 28, 2026
Merged
Conversation
…manceStudio Ports PerformanceStudio PRs #285 and #288 (net result; the temporary R/D/G overlay from #285 was replaced by real icons in #288). PlanIconMapper.GetIconName now takes optional storageType and logicalOp: - Columnstore scans (Clustered/Index Scan with Storage="ColumnStore" on the Object element) route to the columnstore_index_* icons. Covers both CCI and NCCI for scan/delete/insert/update/merge. - The three Parallelism subtypes (Repartition/Distribute/Gather Streams) route to their own icons instead of all sharing parallelism.png. ShowPlanParser: the IconName assignment moves from immediately after PhysicalOp parsing to after StorageType and LogicalOp are populated, so the new routing has the inputs it needs. Three new icons (MIT-licensed contribution from @rferraton via PS #288) added to both Dashboard and Lite Resources/PlanIcons. The existing Resource glob in each csproj picks them up automatically. Last upstream sync from PerformanceStudio was 2026-04-16 (#856), scoped to PlanAnalyzer + BenefitScorer. This is a follow-up scoped to plan-viewer icon routing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the plan-viewer icon-routing work from PerformanceStudio PRs #285 and #288 (PS v1.9.0). Net result, since #288 replaced the temporary R/D/G overlay from #285 with real icons.
What ports
PlanIconMapper.GetIconName(physicalOp, storageType, logicalOp)— two new optional params:storageType="ColumnStore"on aClustered Index Scan/Index Scan/Columnstore Index Scan(and the matching delete/insert/update/merge variants) routes to thecolumnstore_index_*icon. Covers both CCI and NCCI.logicalOpforPhysicalOp="Parallelism"routes the three subtypes to their own icons:parallelism_repartition_streamsparallelism_distribute_streamsparallelism_gather_streams(horizontal mirror of distribute, matching SSMS)ShowPlanParser— theIconNameassignment moves from right afterPhysicalOpis parsed to afterStorageTypeandLogicalOpare populated, so the new routing has the inputs it needs.Three new icons added to
Dashboard/Resources/PlanIcons/andLite/Resources/PlanIcons/. MIT-licensed contribution from @rferraton via PS #288. The existing<Resource Include="Resources\PlanIcons\*.png" />glob in each csproj picks them up automatically.What was deliberately not ported
PlanViewerControl.axaml.csoverlay rendering (added in Issue #281 Gaps 1+2: Memory grant charts + File I/O throughput/latency/queued overlay #285, removed in Issue #284: Standardize chart save/export filenames #288). The overlay never existed in PM, so nothing to remove here.Background
Last upstream sync from PerformanceStudio was PR #856 on 2026-04-16, scoped to
PlanAnalyzer.cs+BenefitScorer.cs. This is a follow-up scoped to plan-viewer icon routing only — no analyzer logic, no UI rewrites.Test plan
🤖 Generated with Claude Code