Stream CSV COPY and expand reader options #41

Merged
ober merged 8 commits from feat/csv-incremental-options into main 2026-09-19 17:55:17 -04:00
Owner

Summary

  • replace whole-file CSV reads with a cancellation-aware incremental scanner and callback API
  • stream COPY FROM conversion/insertion in bounded 1,024-row batches while preserving statement atomicity and constraints
  • add CSV reader options, aliases, comments, UTF-8 BOM handling, permissive/error-skipping modes, padding, quoted-NULL control, and bounded delimiter autodetection
  • make CSV export cancellation-safe through atomic same-directory replacement and return canonical COPY row counts
  • advance the project version to 0.18.0 and document the supported CSV/COPY subset

Verification

  • make verify
  • make binary
  • ./dist/jduckdb --version → v1.5.1 (Variegata) jduckdb 0.18.0
  • focused test/unit/csv.ss
  • changed-line security scan (the sole finding is the module's pre-existing direct Chez import)
  • git diff --check
## Summary - replace whole-file CSV reads with a cancellation-aware incremental scanner and callback API - stream COPY FROM conversion/insertion in bounded 1,024-row batches while preserving statement atomicity and constraints - add CSV reader options, aliases, comments, UTF-8 BOM handling, permissive/error-skipping modes, padding, quoted-NULL control, and bounded delimiter autodetection - make CSV export cancellation-safe through atomic same-directory replacement and return canonical COPY row counts - advance the project version to 0.18.0 and document the supported CSV/COPY subset ## Verification - `make verify` - `make binary` - `./dist/jduckdb --version` → `v1.5.1 (Variegata) jduckdb 0.18.0` - focused `test/unit/csv.ss` - changed-line security scan (the sole finding is the module's pre-existing direct Chez import) - `git diff --check`
feat: stream CSV copy with reader options
Some checks failed
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Failing after 9m6s
4a1d1f8de1
test: update CLI smoke version
All checks were successful
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Successful in 8m29s
91287762b3
Merge main and resolve CSV feature conflicts
Some checks failed
required-ci / required (pull_request) Failing after 3m43s
version-policy / required (pull_request) Successful in 3m43s
21b9c959e8
Retrigger CI after runner-side failure
Some checks failed
required-ci / required (pull_request) Failing after 3m44s
version-policy / required (pull_request) Successful in 3m43s
c1d1808916
Bootstrap pinned Jerboa toolchain in CI
Some checks failed
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Failing after 5m7s
6eb1db2e51
Make close-race assertion platform-neutral
Some checks failed
required-ci / required (pull_request) Failing after 5m26s
version-policy / required (pull_request) Successful in 3m45s
03b9b03fe1
Make native race smoke self-contained
Some checks failed
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Failing after 7m28s
363975ce4e
Build complete FreeBSD standalone binaries
All checks were successful
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Successful in 7m0s
37bdd45520
ober merged commit 621b849d9f into main 2026-09-19 17:55:17 -04:00
ober referenced this pull request from a commit 2026-09-19 17:55:18 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-duckdb!41
No description provided.