Feature/query store grid - Bar chart and descending first sort#103
Feature/query store grid - Bar chart and descending first sort#103rferraton wants to merge 11 commits intoerikdarlingdata:devfrom
Conversation
Release v0.8.0 — MCP server, rename, release automation
Fix release workflow for v0.8.0
Release v0.8.1 — Screenshots, docs, workflow improvements
Release v0.8.1 — Fix release workflow, screenshots, docs
Release v0.8.2 — Screenshots, docs, release automation fix
Release v0.9.0
Release v1.0.0
Release v1.1.0
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Comment Tip CodeRabbit can approve the review once all CodeRabbit's comments are resolved.Enable the |
erikdarlingdata
left a comment
There was a problem hiding this comment.
Thanks for the contribution! The bar charts and descending-first sort are both great UX additions for performance data. A few things to address before merge:
Must fix
-
Rebase on current
dev— This PR is based on code before several recent changes. Currentdevhas:- 3 new columns between PlanId and Last Executed: Query Hash, Plan Hash, Module (PR #93)
- "View History" context menu item (PR #98)
- Code review fixes including dead code removal and CTS disposal (PR #97)
You'll need to rebase on current
devand resolve conflicts. The new columns should be preserved (as plain text columns — they're identifiers, not metrics, so bar charts don't apply to them). -
Missing sort keys —
GetSortKeyswitch doesn't handleQueryHash,QueryPlanHash, orModuleNamecolumns (added in #93). Sorting on those columns would fall through to theLastExecutedLocaldefault. Add cases for them.
Suggestions (non-blocking)
-
Property boilerplate — The 13 ratio properties + 13 isSorted properties +
SetBarswitch adds ~130 lines of repetitive code toQueryStoreRow. A dictionary-based approach (e.g.,Dictionary<string, (double Ratio, bool IsSorted)>with a single indexer orGetRatio(columnId)method) would be significantly leaner. Not a blocker since the current approach works correctly. -
UpdateBarRatiosefficiency — Currently calls.Max()13 times across all filtered rows. Could be computed in a single pass over the rows, accumulating max values for all columns simultaneously. Again, not a blocker for typical grid sizes (25-100 rows).
The feature itself looks solid — clean BarChartCell control, good theme configurability, and the sort cycle (desc → asc → clear) makes sense for this context. Just needs the rebase to integrate with recent changes.
|
go to fix a rebase from dev ... |
What does this PR do?
Changes on the query store grid :
Which component(s) does this affect?
How was this tested?
Describe the testing you've done. Include:
Checklist
dotnet build -c Debug)dotnet test)Summary by CodeRabbit