isSink folds an operator type with the browser's locale

Open Beginner friendly
#8,616 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/texera

All issues in apache/texera

Similar issues

More Scala issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.