mikebridge opened a new pull request, #45995: URL: https://github.com/apache/superset/pull/45995
### SUMMARY Semantic views show only Saved columns and metrics in their pickers, including when older metadata omits feature declarations. Previously, some payloads enabled Simple expressions even though the semantic SDK cannot represent those column expressions, leaving users with selections the backend rejects. Ordinary SQL datasets keep their expression controls. Provider capability declarations also had inconsistent interpretations: metadata could serialize arbitrary values, another endpoint could fail while reading them, and query validation used its own membership checks. One host projection now supplies the supported capabilities for model metadata, datasource API metadata and mapper validation. It grants only recognized, non-reserved SDK enum members and ignores malformed values without converting raw strings into grants. `SemanticViewFeature.ADHOC_COLUMN_EXPRESSIONS` remains importable but reserved. No SDK query shapes or provider methods change. The author guide and upgrade notes explain the contract and picker compatibility change. ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF Screenshots are not included; no live UI or provider environment was exercised for this change. Before: a stale reserved capability or omitted feature metadata could enable Simple mode. After: all semantic views list dimensions under Saved and disable Simple/Custom SQL. Existing unsupported selections are not silently rewritten. ### TESTING INSTRUCTIONS 1. Open a semantic-view chart in Explore and open a dimension picker: Saved is selected, all dimensions remain selectable, and Simple/Custom SQL are disabled. Repeat with metadata omitting `semantic_view_features` and with the reserved string present. 2. Open the same controls for an ordinary SQL dataset and confirm Simple/SQL still follow their existing availability rules. 3. With a development provider, compare Explore datasource metadata with the datasource-info endpoint: a real `GROUP_LIMIT` enum member is advertised in both; raw strings, unknown values and the reserved member are absent. A malformed declaration such as `None` must not produce a metadata error. 4. Submit a grouped query with valid enum grants and then without them. Existing supported queries still work; unsupported group-limit/others/orderby expressions retain actionable validation errors. Focused projection/model tests (178), mapper tests (406) and picker tests (79) pass. Red controls reproduce malformed metadata failures, inconsistent mapper grants and the missing/reserved-feature picker behavior. All changed-file hooks pass, including MyPy and frontend types. No service or full-suite runs. ### ADDITIONAL INFORMATION - [ ] Has associated issue: - [x] Required feature flags: existing semantic-layer feature - [x] Changes UI - [ ] Includes DB Migration - [ ] Introduces new feature or API - [ ] Removes existing feature or API -- 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]
