isSink folds an operator type with the browser's locale
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 90/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start at the isSink implementation in workflow-graph.ts:81 and read workflow-graph.spec.ts, which already covers SINK. Check the listed call sites in workflow-graph.ts, result-panel.component.ts, and operator-menu.service.ts to confirm they use this helper. Done means the existing SINK regression test still passes without locale-dependent matching.
Written by the indexing model from the issue text.
Description
Task Summary
isSink matches with operator.operatorType.toLocaleLowerCase().includes("sink") (workflow-graph.ts:81). toLocaleLowerCase() folds case using the runtime's current locale, which in the frontend is whatever language the browser is set to, so the same operator type can fold two ways for two users. Turkish is the case that bites: an uppercase I maps to the dotless ı, so a type spelled SINK folds to sınk and stops matching.
Nothing is broken today. The only operator type containing "sink" is SimpleSink, and its i is already lowercase, so no locale touches it. An operator type is a machine identifier though, and folding one should not depend on where the browser runs. toLowerCase() is the locale-independent form and is what this comparison wants.
Four call sites read it: the setViewOperatorResult and markReuseResult guards (workflow-graph.ts:465, :518), the result panel's sink list (result-panel.component.ts:189), and the cache-toggle filter (operator-menu.service.ts:175). A type that folded differently would drop out of the result panel and become eligible for the two toggles it is meant to be excluded from.
Required Test
workflow-graph.spec.ts already asserts that SINK is a sink. That is the case that would flip, so it serves as the regression test.
Related
Surfaced while reviewing #8603, which added the first coverage for this helper.
Task Type
- Refactor / Cleanup
- DevOps / Deployment / CI
- Testing / QA
- Documentation
- Performance
- Other
- Dominant language
- Scala
- Stars
- 316
- Forks
- 189
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 198
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.
More from apache/texera
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
ergoplatform/ergodocs#614 ·
-
area:ci enhancement requires-triage
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
apache/datafusion-comet#6078 ·
-
[VL] madvise(WILLNEED) call fails in MmapFileStream because of wrong calculation of fetching length Openbug triage
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
chipsalliance/rocket-chip#3831 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100