mikebridge opened a new pull request, #44832: URL: https://github.com/apache/superset/pull/44832
### SUMMARY Semantic-layer providers can page their results. Today a chart silently renders only the first provider page (e.g. MetricFlow's 1,024 rows) and looks complete. For a time series, that means the oldest rows are shown and recent history is missing without any warning. This PR makes result completeness an explicit contract: - Providers can report whether a result is **verified complete**. The host fails the query with an actionable error when a result is **incomplete** (fewer rows delivered than requested/available) or **unverified** (completeness evidence missing, malformed or contradictory). No partial success is returned. - Verified complete results succeed unchanged, including results of exactly the page size (1,024). Explicit row limits keep their meaning. - The same guard applies to chart data, the datasource values endpoint, time-comparison subqueries and cached results. A legacy cached result without verified completeness is not served as complete. - Async Explore surfaces the safe, actionable completeness message instead of the generic "One or more chart-data queries failed". - `superset-core`: optional completeness signalling on the semantic-layer result type, with backwards-compatible defaults for providers that don't implement it. Supported pagination beyond the first page is out of scope here; this is the correctness guard that prevents silent truncation. ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF Before: a 1,025+ row semantic query renders 1,024 rows as an apparently complete chart. After: the chart shows an actionable "results are incomplete" error; verified complete results render as before. (Screenshots to follow with browser acceptance.) ### TESTING INSTRUCTIONS - `pytest tests/unit_tests/semantic_layers/ tests/unit_tests/common/test_query_context_processor.py tests/unit_tests/tasks/test_async_queries.py` - `npm run test -- src/middleware/asyncEvent.test.ts` (in `superset-frontend`) - With a provider that pages at N rows: request N-1, N and N+1 rows. N-1 and N succeed; N+1 fails with the incomplete-result error in both sync and async Explore. ### ADDITIONAL INFORMATION - [ ] Has associated issue: - [ ] Required feature flags: - [x] Changes UI - [ ] Includes DB Migration - [ ] Introduces new feature or API - [ ] Removes existing feature or API Draft: async browser acceptance is still outstanding, and the branch needs a master merge before review. -- 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]
