-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
priority:mediumShould be done soonShould be done soonsize:sSmall — 1 to 4 hoursSmall — 1 to 4 hoursstatus:readyRefined and ready for sprint selectionRefined and ready for sprint selectiontype:featureNew functionalityNew functionality
Milestone
Description
Description
When piping large CSV files, sql-pipe appears frozen — there is no feedback while rows are being inserted. A lightweight progress indicator on stderr eliminates the "is it working?" uncertainty.
Example
Loading... 125,000 rows\r
Loading... 250,000 rows\r
Loaded 312,450 rows in 1.2s
Acceptance Criteria
- During CSV loading, print a running row count to stderr using carriage return (
\r) to update in place — no newlines until done - Only shown when stderr is a TTY (suppressed in pipelines and scripts)
- Update frequency: every 10,000 rows (or configurable via constant) — not every row
- After loading completes, overwrite with final
Loaded <n> rows in <t>sand a newline - If
--max-rowsis set, show it asLoading... 5,000 / 100,000 rows - Zero performance overhead when stderr is not a TTY
- README.md updated
Notes
- Depends on / pairs well with #U1 (row count after load) — can be done together
- Use
std.os.isattyor equivalent in Zig to detect TTY - Elapsed time via
std.time.milliTimestamp()
Dependencies
Depends on #83 (row count must be tracked before a progress indicator can show it)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
priority:mediumShould be done soonShould be done soonsize:sSmall — 1 to 4 hoursSmall — 1 to 4 hoursstatus:readyRefined and ready for sprint selectionRefined and ready for sprint selectiontype:featureNew functionalityNew functionality