[Feat]: Filter bar: contains, starts with, ends with, is empty operators for text columns
Maintainers usually reply within 1 day
@Detoy is already working on this.
Since Oct 8, 2026.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 72/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, sql, typescript
Research direction
Start with src/utils/filterBar.ts and tests/utils/filterBar.test.ts to see how operators are selected and filter clauses are built. Then update src/components/ui/FilterRow.tsx and add locale keys under src/i18n/locales/ if the labels need translation. Done means the text-only operators generate the specified SQL, escape quotes and wildcard characters, hide the value input for empty checks, and pass the tests.
Written by the indexing model from the issue text.
Description
🚀 Feature Proposal
Add text-friendly operators to the structured filter bar for string columns: contains, starts with, ends with, is empty and is not empty.
Motivation
Today text columns only offer LIKE / NOT LIKE, so users have to type % wildcards by hand and remember the syntax. "Is empty" should catch both NULL and '' in one step, which is what people usually mean.
Where to start
src/utils/filterBar.ts: extendFilterOperator,getOperatorsForTypeandbuildSingleFilterClause.- contains →
col LIKE '%v%', starts with →'v%', ends with →'%v' - is empty →
(col IS NULL OR col = ''), is not empty → the negation - escape
%and_inside the value so they match literally
- contains →
src/components/ui/FilterRow.tsx: add the two no-value operators toNO_VALUE_OPS; consider readable labels via i18n instead of raw SQL tokens.
Acceptance criteria
- The new operators appear for text columns only.
- Generated SQL is correct; quotes and wildcard characters in the value are escaped.
- "Is empty" / "is not empty" hide the value input.
- Unit tests added to
tests/utils/filterBar.test.ts.
Contributor notes
- Dominant language
- TypeScript
- Stars
- 5.1k
- Forks
- 335
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 75
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing 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 TabularisDB/tabularis
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
TabularisDB/tabularis#905 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
TabularisDB/tabularis#903 ·
Maintainers usually reply within 1 day
-
[Bug]: Plugin UI slots data-grid.toolbar.actions and sidebar.footer.actions receive an empty contextOpenbug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
TabularisDB/tabularis#892 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
TabularisDB/tabularis#919 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 75/100
TabularisDB/tabularis#916 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
Mondriaan
Difficulty 1/5 Under an hour Newbie friendliness 88/100
knaw-huc/textannoviz#709 ·
Maintainers usually reply within 1 day
-
Add: YRF Music NepalOpenstreams:add
Difficulty 1/5 Under an hour Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
walletbeat/walletbeat#1558 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
hawk-digital-environments/HAWKI#438 ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OktoLabsAI/okto-pulse#114 ·
Maintainers usually reply within 1 day