Nest Early abort under Optimization and list CE model above it - #614
Merged
Merged
Conversation
The early abort reason is part of the optimization result, so the App's Runtime Summary now shows it on the row under Optimization with its label indented. CE model moves up above Optimization, so Optimization and its reason end the list, as in the issue's mockup. The web Runtime card and the HTML export follow the same #215 E11 order, so CE Model moves above Optimization there too. They have no Early abort row, so there is nothing to nest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019tS6P95Dtzs4aeMpb1xqzX
1 task
|
Reviewed: no correctness, untrusted-input, or convention issues found. The App, HTML export, and Blazor orderings are consistent. The nested-label logic handles the case where there is no Optimization row. The new tests cover both the nested and non-nested cases plus the HTML ordering. No version, NoWarn, or Web csproj changes are needed. |
This was referenced Sep 29, 2026
Merged
erikdarlingdata
added a commit
to erikdarlingdata/PerformanceMonitor
that referenced
this pull request
Sep 29, 2026
…under it, as in PerformanceStudio (#4836) (#4849) The plan viewer's Runtime Summary listed Optimization, then Early abort, then CE model. PerformanceStudio moved CE model above Optimization and nests the early abort reason under Optimization (erikdarlingdata/PerformanceStudio#613, fixed by erikdarlingdata/PerformanceStudio#614). The reason is part of the optimization result. The two plan viewers showed the same plan's summary in a different order. - PlanDisplayText.BuildRuntimeSummaryRows lists Cached plan size, Memory grant, Branches and Threads, then CE model, Optimization and Early abort. - RuntimeSummaryRow gains Nested. The Early abort row is nested when an Optimization row is present, and a plain row when there is none. - PlanViewerControl indents a nested row's label by 12 pixels, and its value stays in the same column as every other value. Lite and the Darling viewer share the control. - Tests pin the order, the nesting rule and the label-only indent.
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
Closes #613
Changes
src/PlanViewer.App/Controls/PlanViewerControl.RuntimeSummary.cs:AddRowtakes anestedflag that indents the label. The CE model row comes before the Optimization row.src/PlanViewer.Web/Pages/InsightsPanel.razorandsrc/PlanViewer.Core/Output/HtmlExporter.cs: the CE Model row comes before the Optimization row. The E11 order comments show the new order.tests/PlanViewer.Core.Tests/RuntimeSummaryEarlyAbortTests.cs(new): a headless test of the row order and the indent. A second test checks that the row is not indented when there is no Optimization row.tests/PlanViewer.Core.Tests/HtmlExporterTests.cs: a test that the HTML runtime card lists CE Model above Optimization.Test Plan
RuntimeSummaryEarlyAbortTests,RuntimeSummaryMemoryGrantTestsandHtmlExporterTestspass on this branch (14 tests).tests/PlanViewer.Core.Tests/Plans/key_lookup_plan.sqlplanhas one (GoodEnoughPlanFound).Generated with Claude Code
https://claude.ai/code/session_019tS6P95Dtzs4aeMpb1xqzX