hughhhh opened a new pull request, #45558:
URL: https://github.com/apache/superset/pull/45558

   ### SUMMARY
   Two defects that together made a dataset save silently revert column flags:
   
   1. `SqlaTable.fetch_metadata` set `groupby` (**Is dimension**) and 
`filterable` (**Is filterable**) to `True` on every column the source reported, 
existing ones included. A column sync — the editor's "Sync columns from source" 
button, `PUT /api/v1/dataset/<id>?override_columns=true` (which syncs *after* 
the update has committed), or the MCP `update_dataset` tool — therefore 
reverted whatever the owner had chosen. The defaults now apply only to newly 
discovered columns.
   2. The save dialog compared the dataset's SQL raw: the API reports a 
physical dataset's SQL as `null`, the editor emits `''`. So the first edit of 
any physical dataset looked like a SQL change, and the dialog offered — 
pre-ticked — to resync columns from a query that doesn't exist. Both spellings 
now mean "no SQL".
   
   Split out of #43870 at a reviewer's request; it is independent of partition 
filter mapping. UPDATING.md notes the behaviour change.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   Before: editing a physical dataset's description shows a pre-ticked "sync 
columns" checkbox in the confirm dialog, and saving turns Is dimension / Is 
filterable back on for every column. After: no checkbox for physical datasets; 
synced existing columns keep their flags.
   
   ### TESTING INSTRUCTIONS
   - `pytest tests/unit_tests/connectors/sqla/models_test.py -k keeps_groupby` 
— fails without the fix.
   - `npx jest src/components/Datasource/DatasourceModal` — "does not offer a 
column sync for a physical dataset" fails without the fix.
   - Manual: untick Is filterable on a column of a physical dataset, save, then 
click "Sync columns from source" and save; the column stays unfilterable.
   
   ### ADDITIONAL INFORMATION
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [x] Changes UI
   - [ ] Includes DB Migration
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to