posit-dev / posit-dev/positron
Column Profile Error handling
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 4.3k
- Forks
- 184
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 206
Description
A follow up for https://github.com/posit-dev/positron/pull/4326
Currently with #4326 we implicitly assume that if there's an error while computing the profiles we'll either return an empty set of profiles or we'll never return the event, and thus the promise will timeout.
We should agree on a contract to return error messages to the front-end if something goes wrong while computing the profiles. Since this method computes multiple profiles, for multiple columns at the same time we should probably be able to identify the error at the profile level, so the UI can handle them differently. Similarly to what we have done to display invalid filters.
One important use case for this functionality would be to avoid computing the summary profiles with ALTREP vectors, as this computation forces materialization of the entire vectors (see internal slack for more context), but in this case, the UI should display some info about why it didn't compute the summary values.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading pull request #4326 and the existing invalid-filter handling referenced in the issue. Trace how profile computation reports results to the front end and define the per-profile error contract. Done means computation failures, including skipped summary profiles, reach the UI with enough context for it to display an explanation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- data, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100