[Feat]: Structured filter: pick values from the column's distinct values
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, sql, typescript
Research direction
Start with the value inputs in src/components/ui/FilterRow.tsx and the query-builder guidance in src/utils/filterBar.ts; check how the existing query command is used. Add unit tests for the query builder across the supported dialects, and follow the locale and accessibility requirements in the contributor notes. Done means the picker meets the listed acceptance criteria and pnpm lint, pnpm typecheck and pnpm test pass.
Written by the indexing model from the issue text.
Description
🚀 Feature Proposal
Add a value picker to the structured filter: a button next to the value field loads the column's most frequent distinct values with their counts, so users can pick one or several instead of typing them.
Motivation
Filtering on status or enum-like columns means remembering the exact values; typos silently return no rows.
Where to start
src/components/ui/FilterRow.tsx: the value inputs are plain<input>s. Add a button that opens a popover with a search box and the value list.src/utils/filterBar.ts: a pure builder forSELECT col, COUNT(*) FROM table [WHERE current filter] GROUP BY col ORDER BY 2 DESC LIMIT 100with per-driver identifier quoting, executed through the existing query command.- Picking several values switches the operator to
IN.
Acceptance criteria
- The picker shows up to 100 values with counts and a search box.
- One value fills the input with
=; several setIN. - Loading and error states are handled; cancelling leaves the filter untouched.
- Not offered for BLOB / JSON columns.
- Unit tests for the query builder per dialect.
Contributor notes
- Dominant language
- TypeScript
- Stars
- 5.1k
- Forks
- 335
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 188
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
-
Difficulty 4/5 1-2 days Newbie friendliness 25/100
TabularisDB/tabularis#1135 · 2 comments ·
Maintainers usually reply within 1 day
-
[Bug]: Long Table Names Are Truncated in Opened TabsPossibly taken @itsmunzir claimed this 1 day ago. Openbug
TabularisDB/tabularis#1132 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Feat: model pooler mode in ConnectionParams for PgBouncer transaction-mode + custom types (tabularis-postgresql-plugin#157, #1097 residual)Possibly taken @aesslinger claimed this 1 day ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 25/100
TabularisDB/tabularis#1126 · 1 comment ·
Maintainers usually reply within 1 day
-
MySQL driver drops fractional seconds from DATETIME(n) and TIMESTAMP(n) valuesPossibly taken @ozenyunus35 claimed this 2 days ago. Openbug good first issue
Difficulty 3/5 1-2 days Newbie friendliness 25/100
TabularisDB/tabularis#1113 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
TabularisDB/tabularis#1110 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
polarsource/polar#15580 ·
Maintainers usually reply within 1 day
-
accepted bug via-triage
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
pingdotgg/t3code#20931 · 1 comment ·
Maintainers usually reply within 1 day
-
bug/1-unconfirmed kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 83/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ranxianglei/billion-context#3583 ·
Maintainers usually reply within 1 day