Skip to content

Plan viewer: CE model sits above Optimization, and Early abort nests under it, as in PerformanceStudio (#4836) - #4849

Merged
erikdarlingdata merged 2 commits into
devfrom
fix/4836-runtime-summary-order
Sep 29, 2026
Merged

erikdarlingdata merged 2 commits into
devfrom
fix/4836-runtime-summary-order

Conversation

@erikdarlingdata

@erikdarlingdata erikdarlingdata commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

Fixes #4836.

Why

PerformanceStudio changed the last rows of its plan Runtime Summary (erikdarlingdata/PerformanceStudio#613, fixed by erikdarlingdata/PerformanceStudio#614). The shared plan viewer here still used the old order, so Lite, the Darling viewer and Studio showed different Runtime Summaries for the same plan.

What changes

  • Row order. PlanDisplayText.BuildRuntimeSummaryRows now ends with CE model, then Optimization, then Early abort. It used to end with Optimization, Early abort, then CE model. The doc comment lists the new order.
  • Early abort nests under Optimization. RuntimeSummaryRow gains Nested (default false). The Early abort row is nested only when the Optimization row is present. With no optimization level, it is a plain row.
  • The card indents a nested label. In PlanViewerControl.Properties.cs, a nested row's label gets a 12px left margin. Its value keeps the same column as every other value. Lite and the Darling viewer share this control.
  • The Properties panel order of Early Abort Reason and CE Model Version does not change, the same as in Studio.

Test plan

  • RED, each planted and put back:
    • With the old order, Viewer4570Tests.BuildRuntimeSummaryRows_ActualPlan_OrdersElapsedCpuElapsedDopCpuCompileMemoryCeOptEarlyAbort fails.
    • With no row ever nested, Viewer4570Tests.BuildRuntimeSummaryRows_EarlyAbortWithOptimizationLevel_IsNestedAndNothingElseIs fails.
    • With the indent removed from the control, PlanViewerRuntimeSummaryNestingTests.RuntimeSummary_EarlyAbortUnderOptimization_IndentsItsLabelOnly fails.
  • New tests: BuildRuntimeSummaryRows_EarlyAbortWithoutOptimizationLevel_IsNotNested, and two live-control tests in PlanViewerRuntimeSummaryNestingTests. One checks that the nested label is indented and its value is not. The other checks that Early abort is not indented when there is no Optimization row.
  • Both test projects build with 0 warnings. The targeted classes after the merge of dev: 158 total, 0 failed.
  • Full Darling.Tests: 18303 total, 0 failed, 1172 skipped. Full Lite.Tests: 5963 total, 0 failed. Both ran before the dev merge (8bded46), which touched no file in this change.

CHANGELOG

SECTION: Changed
ENTRY:

@erikdarlingdata
erikdarlingdata marked this pull request as ready for review September 29, 2026 21:56
@erikdarlingdata
erikdarlingdata merged commit 309595b into dev Sep 29, 2026
17 of 18 checks passed
@erikdarlingdata
erikdarlingdata deleted the fix/4836-runtime-summary-order branch September 29, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant