Repository navigation
fix(explore): persist aliased column config by real key - #44955
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
Code Review Agent Run #3a01dcActionable Suggestions - 0Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
|
The flagged issue is correct. When To resolve this, ensure the onChange={config => setColumnConfig(col.key, { ...col.config, ...config } as T)}There are no other comments on this PR to address. superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.tsx |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #44955 +/- ##
===========================================
- Coverage 84.01% 65.44% -18.58%
===========================================
Files 3057 3057
Lines 201186 201229 +43
Branches 47028 47054 +26
===========================================
- Hits 169032 131699 -37333
- Misses 28914 66578 +37664
+ Partials 3240 2952 -288
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Code Review Agent Run #89ee34Actionable Suggestions - 0Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
Review effort: Lite
Findings: 1
Open (2)
What changed in this PR
Fixes persistence of column configuration for aliased/display-named columns (e.g., __timestamp shown as “Time”) by separating the real column key from the display name and normalizing legacy stored keys.
Changes:
- Add a
keyfield toColumnConfigInfoand ensure edits are saved under the real column key rather than the display alias. - Extend
normalizeColumnConfigKeysto remap configs saved under display aliases back onto real column keys. - Add test coverage for aliased-column persistence and legacy alias-key migration.
| File | Description |
|---|---|
| superset-frontend/src/explore/components/controls/ColumnConfigControl/types.ts | Adds real key to the column config info model. |
| superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.tsx | Uses real column key for persisting config updates. |
| superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.test.tsx | Adds tests for aliased key persistence + legacy alias migration behavior. |
| superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.ts | Normalizes legacy column_config entries saved under display aliases. |
| superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.test.ts | Adds tests for alias-to-real-key normalization behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
SBIN2010
left a comment
There was a problem hiding this comment.
Writing new edits under col.key fixes the reported bug. The legacy remap still needs a tighter match (real columns named like the alias, and non-English saved keys), and chart rendering still reads the unmigrated key until the next edit.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
✅ Deploy Preview for superset-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
SBIN2010
left a comment
There was a problem hiding this comment.
Chart rendering now keeps a real Time column off __timestamp. The control that persists column_config still normalizes without those known names, so the next edit moves that config onto __timestamp.
Code Review Agent Run #7e60cfActionable Suggestions - 0Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
CodeAnt PR Risk: Low Risk
Assessed commit: |
There was a problem hiding this comment.
Code Review Agent Run #17c4fa
Actionable Suggestions - 1
-
superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.ts - 1
- CWE-1321: Prevent prototype pollution via object key · Line 394-394
Review Details
-
Files reviewed - 10 · Commit Range:
ff12102..4bbf797- superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
- superset-frontend/plugins/plugin-chart-ag-grid-table/test/controlPanel.test.tsx
- superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
- superset-frontend/plugins/plugin-chart-table/test/controlPanel.test.tsx
- superset-frontend/plugins/plugin-chart-ag-grid-table/test/transformProps.test.ts
- superset-frontend/plugins/plugin-chart-table/test/TableChart.test.tsx
- superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.test.ts
- superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.ts
- superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/isEqualColumns.ts
- superset-frontend/plugins/plugin-chart-table/src/utils/isEqualColumns.ts
-
Files skipped - 0
-
Tools
- Whispers (Secret Scanner) - ✔︎ Successful
- Detect-secrets (Secret Scanner) - ✔︎ Successful
- Eslint (Linter) - ✔︎ Successful
Bito Usage Guide
Commands
Type the following command in the pull request comment and save the comment.
-
/review- Manually triggers an incremental AI Review. -
/review full- Manually triggers a full AI Review. -
/pause- Pauses automatic reviews on this pull request. -
/resume- Resumes automatic reviews. -
/resolve- Marks all Bito-posted review comments as resolved. -
/abort- Cancels all in-progress reviews.
Refer to the documentation for additional commands.
Configuration
This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.
Documentation & Help
|
@AmoghAtreya looks like there are merge conflicts, mind taking care of those? |
…liased-column-key Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks for the message @sadpandajoe. Merged latest master into this branch and resolved the conflict in |
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
EnxDev
left a comment
There was a problem hiding this comment.
Read through this one and it holds up. Edits land on col.key, legacy Time entries migrate at render as well as in the control, and real or dropped Time columns and metrics stay off __timestamp. The earlier threads (ordering, knownKeys before comparison expansion, render-path tests) are all reflected in the diff with tests that would fail without them.
One small nit inline on getKnownColumnConfigKeys, nothing blocking.
…migration The popover test added in #44843 asserted that a config stored under the display alias `Time` is ignored. #44955 deliberately reads legacy `Time`-keyed configs and migrates them onto `__timestamp`, so the assertion is stale. Assert the intended behaviour instead: the legacy config is read back and an edit is saved under `__timestamp`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 34d5617)


SUMMARY
Separates the real column key from its display alias in
ColumnConfigControl.Aliased columns such as
__timestamp(“Time”) now store configuration under the real column key, ensuring edits persist when the configuration popover is reopened.Fixes #44911.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Not applicable.
TESTING INSTRUCTIONS
npm test -- src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.test.tsx --maxWorkers=2__timestamp.column_config.__timestamp.ADDITIONAL INFORMATION