[Feat]: Import data from file (CSV/TSV/JSON)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- rust, typescript
- Domain
- database
Research direction
Start by reading the existing clipboard import modal and the frontend parse, infer, preview, and execute flow; the issue names execute_clipboard_import as the Rust-side entry point. Trace how the modal receives clipboard content and how the file picker can feed the same pipeline, including the proposed size warning. Done means file import works for the listed formats through the existing preview and execution flow, with a warning for large files.
Written by the indexing model from the issue text.
Description
Prerequisites
- I have written a descriptive issue title
- I have searched existing issues to ensure the feature has not already been requested
🚀 Feature Proposal
Add "Import from file…" as a data source for table imports, alongside the existing clipboard import.
The clipboard import modal is already a full-featured import pipeline: format detection (TSV / CSV / JSON array / Markdown table), type inference with confidence levels, schema editor, data preview, create/append modes with fail/append/replace strategies, mapping to existing columns and ALTER TABLE ADD COLUMN for new ones — all driver-agnostic on the Rust side (execute_clipboard_import goes through the driver trait, so plugins work too).
The only missing piece is the data source: today the modal can only read from the clipboard, which is not a workable flow for actual files.
Proposed v1 (small):
- A file picker (
.csv,.tsv,.json,.md) feeding the file content into the existing parse → infer → preview → execute pipeline; - the modal becomes a generic "Import data" modal with two sources (clipboard / file);
- a size guard with a warning above ~10–20 MB, since parsing happens in the frontend.
Follow-up v2 (large files):
- Rust-side streaming CSV parsing (the
csvcrate is already a dependency for export) with batched inserts, progress events and cancellation — mirroring the existing streaming export pipeline; - switch inserts to prepared statements / multi-row batches for throughput;
- fix the frontend CSV parser to support quoted cells containing newlines (it currently splits on
\nbefore parsing — fine for clipboard content, not for real-world CSV files).
Motivation
Tabularis can export result sets to CSV/JSON files (and soon Markdown), but there is no way to import a file into a table — the asymmetry is surprising for users coming from other DB tools. Loading a CSV into a new or existing table is one of the most common day-to-day tasks.
Example
Table context menu / explorer → "Import data…" → pick users.csv → same schema/preview screen as the clipboard import → rows inserted with create-table or append.
Happy to work on a PR (v1 first) if there's interest.
- Dominant language
- TypeScript
- Stars
- 5.1k
- Forks
- 335
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 60
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
-
feature request good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
TabularisDB/tabularis#853 ·
Maintainers usually reply within 1 day
-
[Bug]: Stable AppImage ships AppRun.wrapped as 0770, fails under firejail / AppImage catalog testOpenbug
Difficulty 3/5 1-2 days Newbie friendliness 58/100
TabularisDB/tabularis#879 ·
Maintainers usually reply within 1 day
-
[Feat]: Drag & drop connections into groups & sidebar group organizationPossibly taken @benedettoraviotta claimed this today. Openfeature request
TabularisDB/tabularis#876 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Update the logo across the app: icons, dock, installers and in-app brandingPossibly taken @wajrock claimed this 1 day ago. Openenhancement
TabularisDB/tabularis#873 · 1 assignee ·
Maintainers usually reply within 1 day
-
feature request help wanted
Difficulty 4/5 3-5 days Newbie friendliness 68/100
TabularisDB/tabularis#871 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
rajbos/ai-engineering-fluency#2340 · 1 comment ·
Maintainers usually reply within 1 day
-
community documentation first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 70/100
lingdojo/kana-dojo#31864 · 1 comment · 5 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
zenstackhq/zenstack#2873 ·
Maintainers usually reply within 1 day
-
CLI: TUI shows onboarding when the provider's API key is only in the environment (e.g. OPENROUTER_API_KEY)Possibly taken A pull request linked to this issue is open or already merged. OpenCLI
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
cline/cline#14923 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
paperclipai/paperclip#15490 ·
Maintainers usually reply within 1 day