- Run the testsuite when
rcc-one.shruns outside Actions (#2669).
- Tell a missing
clang-formatapart from a misformatted tree (#2671).
- Run the flavor-rename guard where it can actually fire (#2676).
- Refuse an upstream clone that cannot name a version (#2677).
- Say how a retired patch reaches the vendor commit (#2679).
- Report what stage 5 added, not what it set out to add (#2680).
- Backport kit fixes from
rigraph,duckdb-randdm.
- Register the
ours-versiondriver before refusing over it (#2665).
- Read every universe that publishes a green, not just
duckdb(#2670).
- Make
authoring/obey itself, name evidence in the rules, and refresh themeta/node (#2673).
- Consolidate the authoring rules, and split recorded evidence into its own leaf (#2672).
- Make the
ours-versiondriver reach the clone that needs it (#2663).
- Explain the flavor surface in the convergence check (#2661).
- Refuse to replay when the
ours-versionmerge driver is missing (#2659).
- Classify an
R CMD checkgate failure instead of giving up on it (#2653).
- Carry the twin's work in a file the buffer also touched (#2657).
- Keep forwarding a base series with a live
-fwd, and check the two converge (#2658).
- Give the warning gate its own flags, and skip what a dropped
Suggestscannot support (#2652).
- Read a double-digit patch release as a release, and say that air runs here (#2638).
- Drop the semicolon after two namespace closings (#2645).
- Make the vendored tree compile without warnings (#2617).
- Pin the upstream clone's abbreviation, so a vendored tree is reproducible (#2489, #2631).
- Say when the glue check could not run, instead of blaming the glue (#2513, #2629).
- Let
BASE_SCAN_DEPTHraise the base scan in all four scanners (#2512, #2628).
- Unshadow two locals (#2612).
- Render
n_distinct()through the exportedsql_glue(), and warn on an older dbplyr (#1982, #2605).
- Drop a stray semicolon after a constructor body (#2610).
- Suffix the one shadowing parameter left in a header (#2618).
- Build a
string_tfrom R'sconst char*without a cast (#2619).
- Widen to R's double explicitly when copying a column out (#2611).
- Stop casting away
conston R's read-only data pointers (#2609).
- Suffix constructor parameters that shadow their member (#2608).
- Read wrapped Config/gha/extra-packages values, bump auxiliary workflows to ubuntu-26.04 (#2603).
- Keep stage 5 alive when the buffer is longer than the chunk (#2602).
- Materialize packed columns on R's thread, not on the scan's (#2582).
- State the interrupt handler's invariants where they are used (#2598).
- Gate the compiler warnings each scope answers for (#1829, #2620).
- Remove
allow_materializationfromrel_to_altrep()(#1052, #2643).
- Report instance settings a reused database cannot apply, and avoids treating URL-like paths like files (#2560, #2641).
- Make the prebuilt-engine setup work without privileges (#22, #2622).
- Translate
clock::date_build()anddifftime()(#2621).
- Fold the base series' test-side fixes in as stage 5 consumes the buffer (#2594).
- Format with air.
- Say that a vendored edit does not rebuild itself (#2648).
- Give the two undocumented testthat helpers a header (#2502, #2634).
-
Point the invariants' deepen line at what is missing, not at notes
BRANCHES.mdlacks (#2516, #2633). -
Convert the stray Rd spellings in roxygen to Markdown (#2616, #2635).
- Spell out the tidyverse rules R here answers to, and the deviations (#2613).
- Say when a snapshot is the right tool, not only how to accept one (#2624).
- Say what two limits cost a caller, and pin them (#590, #1064, #2600).
- Cut an entry to the shortest correct statement, and split the rest into a leaf (#2604).
- Measure what
DISTINCT ONwould buy, and hand it over anyway (#384, #2601).
- Close the last three days' issues into their leaves (#2595).
- Design a producer thread for streaming results, with a TPC-H fetch benchmark (#2583).
- Never reorder includes (#2642).
-
Raise every error through
abort(), so it points at the caller (#2615, #2637). -
Extract result data-frame allocation into a helper (#2585).
- Keep git's stat cache valid across a regeneration of the vendored tree (#2490, #2632).
- Docs(interactive): Give the interrupt its leaf, and answer #202 down to the client name (#2596).
- Skip arrow if uninstallable.
- Compare spill paths on one separator spelling (#2579).
- Answer rather than error when a series has no
README.Rmd(#2576).
-
Catch a generated README that reached a series under the mainline name (#2575).
-
Respect the session
TimeZoneforTIMESTAMPTZcolumns (#2401).
- Make temporary storage usable by default, with the CLI's semantics (#1604, #2562).
-
Wrap the commit status update into an action.
-
Route ccache through one-word compiler wrappers on Unix.
-
Add context for cherry-picking.
-
Route ccache through one-word compiler wrappers on Unix.
-
Name every step and restore the log entry
setup-pandocswallows.
- Give timestamps and time zones their own leaf (#2567).
- Prefer durable storage for hard-to-reproduce experiment results (#2564).
- Cut the store's automatic writers down to the leg's own publish (#2578).
- Skip Windows inside each
test_that()so the snapshot survives (#2577).
- Vendor the DuckDB logos, and write two READMEs from one source (#2517, #2518, #2558).
- Catch a renamed file that reached a series under its mainline name (#2559).
- Anchor the
~/.duckdbconsent default atinteractive()(#2550).
- Set
-build-base, rather than advance it (#2540).
- Fix the re2 clang warnings instead of hiding them (#2492).
- Clamp the replay anchor to the merge base (#2548).
- Fetch the record a publish replaces, so a retry's verdict can land (#2547).
- Stop the backstop recording a
pendingstatus as a verdict (#2544).
- Let
adbcdrivermanagerfail to build on Windows arm64 (#2539).
- Record the untyped-
NULLmapping as designed, declining the flip to logicalNA(#155, #2561).
- Answer the frame-library request, Arrow and non-Arrow (#642, #2557).
- Move the multi-statement prepare rule to the leaf that owns it (#179, #2555).
- State where the instance's settings bind, and both ways
dbConnect()gets them wrong (#83, #171, #2553).
- Say what a virtual
filenamecolumn changes (#1733, #2556).
- Give the geometry write side its route, not just its absence (#1670, #2552).
-
State the UTF-8 repair that works, not the one that looks like it (#12, #2551).
-
Review DuckDB API usage in the glue code and assess a C API migration (#2413).
-
State the mirrors' cadence, now that
krlmlr/duckdb-ris a fork (#2494, #2542). -
An entry that wraps its subject applies everywhere, so applying proves nothing (#2546).
-
Record the August 2026 forward, and turn the cpp11 gap it walked into into a check (#2545, #2543).
- Read verdicts from the
each-rccruns, keeprcc2as the fallback (#2549).
- Expect the extension install to fail where DuckDB does not cover the platform (#2425, #2529).
- Mirror the fork's branches with the Pull app, and drop
sync.yaml(#2534).
- Move the verdict store to
rcc2, one file per commit (#2505).
- Increase retention to 180 days [ci skip].
- Add sharded
revdep2workflow.
- Close the remaining gaps the extension issues map to (#2425, #2536).
- Record the Windows extension-coverage boundaries the issues keep re-finding (#2530).
- Drop the duplicate platform skip that made the canary unreachable (#2537).
- Skip the install test where DuckDB publishes no binaries, and pin the gap (#2535).
-
Ci: Harden
workflow_runworkflows against untrusted pull requests (#106). -
Ci: Pin third-party actions to commits and let Renovate keep them pinned (#105).
- Name the flavor in the README blurb, and find GNU sed (#2510).
- Remove unused pr-commands workflow.
- Record what the closed handbook wave verified, and file what it should not have written down (#2507).
- Weigh documenting a limitation against removing it (#2509).
- Complete the leaves the triage closes will link (#2523).
-
Ci: Pass workflow context through the environment, not into script text (#102).
-
Ci: Add a Windows arm64 (
windows-11-arm) check on R-release (#99).
- Restamp the vendor counter across a replay (#2525).
- Hold
main's version bumps back from a series (#2496, #2526).
- Export only the registration entry point from the DLL.
- Refuse a clone HEAD off the buffer's upstream line.
- Drop an empty replay pick instead of aborting the extend.
-
Drop the CMake scaffolding, and the formatter branch that served it (#2511, #2520).
-
Auto-update from GitHub Actions (#2524).
- Record the declined max-across-prefixes merge rule (#2488, #2527).
- Say when the version counter freezes, and why
build-baselags.
- Send a fix to the handbook before it is written.
- Say where a stage-3 fix goes, and what counts as evidence.
- Feat(series-port): Detect a frozen series, and let it skip the port (#98).
- Fail the plan when green is off the branch's lineage.
- Read r-universe builds, and fix the Windows unity-build break.
- Fix the clone layout, and the README links CRAN cannot follow (#2506).
- Give the tree a way to grow into its blind spots (#2504).
- Add
usage/relational/, and give duckplyr its own section (#2495).
- Land the MVP — every leaf written, at reference or core depth (#2493).
- Pin that a handle collected in a callback cannot re-enter.
- Drop the dead knobs, classify patch failures, restore the tree on a no-op run (#2491).
-
Fold by default, extend on pending, require a rising vendor counter.
-
Write every upward link from the repository root (#2458).
- Do not restore the persistent ccache under R-devel (#2455).
- Bound the base scan and say when it comes up empty (#2434).
- Drop a stale
Makevars.system-libso a vendored build is one (#2446).
- Drop bundled jemalloc from the generated source list.
- Set the firing up, and make the tooling PR a stage (#2441).
- Select work from the verdict store, not from statuses (#2440).
- Make cutover a manual operation the loop only suggests (#2449).
- Vendor with
main's script, into the buffer worktree (#2436).
- Propose the handbook — a strict topic hierarchy with full cover, first two levels (#2454).
- Give every script an extractable one-line header (#2453).
- Fix the
duckdb.1.4.devbadge ranges (#2452).
- Mirror the release branches from the fork, not from
sync.yaml(#2450).
-
Point the
duckdb.devbadges at the cut-overmainseries (#2451). -
Quarantine the superseded loop design and the
main-devreview (#2438).
- State that there is no running marker, and why (#2439).
- Let the subject decide what a vendor commit is (#2435).
- Retire the legacy per-commit dispatch path (#2442).
- Feat(rcc-one): Bound each stage with its own timeout (#97).
- Queue the shards oldest first (#2445).
- Register the version merge driver before the replay.
- Compute the buffer anchor safely, in both scripts.
- Anchor the buffer replay on
-dev's newest vendor commit.
- Bring
-devlevel withmainas a loop stage — identity over curation.
-
Add the vendoring simplification plan, doc routing, and lag badges.
-
Document cutover.
-
Fix badge.
- Flesh out the
Flavorstable, document it inseries-open(#2432).
- Add a
Flavorssection with lag badges and aDocumentationroot.
- Read the vendored SHA one way, in one helper — and say what decides.
- Test(rcc): Stop
git gcracing the harness's own clones, and say why a commit checks itself (#93).
-
Make a verdict's newest writer win, not its slowest.
-
Let
series-cutover.shcreate a base series that does not exist yet (#2428).
- Make writes to the
rccbranch survive a lost race.
- Restore the check action's CRAN-incoming default.
- Make the glue gate work again.
- Raise the vendoring limit from 25 to 100 commits.
- Publish each commit's result as its own file, and consolidate the branch by hand.
- Number shards along the history, and quote failing stages into the run summary (#2427).
- Rerun one commit with a retry pair, not an amend.
- Build every commit as a sharded matrix instead of one run per commit.
-
Replace workflow vendoring with the routine-driven series loop.
-
Harvest rcc logs every 30 minutes.
- Space.
- Reset
-fwd-greento the seed on every rebase.
-
Split rebasing a forward series out of forwarding one.
-
A WIP forward series can always be rebased onto current mainline.
-
Agentic-loop plan refinements + main-dev review.
-
Describe the forbidden forms in
AGENTS.mdinstead of spelling them.
- Dev-branch invariants, the fork-point rule, and a corrected
VENDORING.md.
- Anchor a retry on the series' green, not a ref of its own.
-
Replay by cherry-pick instead of rebuilding trees.
-
Rename the flavor rename from "lts" to "flavor".
- Rebalance shards across waves instead of capping at
max-parallel.
- Split large shards to trade compute for wall clock.
-
Derive the expected storage home from the package name.
-
Make storage and extension snapshots stable across flavors.
-
Skip the httpfs e2e test on development versions.
- New
tbl_file()andtbl_query()to explicitly access tables and queries as dbplyr lazy tables (#96).
- Sync R-CMD-check workflow; drop matrix-env plumbing from custom action (#2422).
- Guard the flavor rename against hard-coded package names (#2423).
- Ci: Run all smoke-test checks even when one fails (#97).
- Lock down
format-suggestegress (audit → block).
- CRAN release v1.5.5 (#2420).
-
Update to DuckDB v1.5.5, see https://github.com/duckdb/duckdb/releases/tag/v1.5.5 for details.
-
Disable extensions on libc++ Linux builds, with startup message and load error (#1107, #2414).
-
Rework how extensions and secrets choose their on-disk location, replacing the package-library extension cache attempted across 1.5.4.1 through 1.5.4.3. Both now share a single "home" root, resolved fresh for every
duckdb()driver. An interactive prompt induckdb()and messages in non-interactive sessions guide the process. See?duckdb_storagefor details. (#2396, #2398).
-
Support
ORandINpredicates pushed down to registered Arrow tables (#2410). -
Error instead of crashing when calling
duckdb_fetch_arrow()on an Arrow result that has been consumed withduckdb_fetch_record_batch()(#2406). -
Fix edge case in computation of
r_base::min/r_base::max/r_base::sumaggregates (#2404, #2405). -
Honor the
na.rmargument ofr_baseaggregates in SQL queries (#2407).
- Document database-instance caching and driver reuse (#2399).
- Remove the package-library extension storage option. The
duckdb_extension_storage()function no longer accepts"library"(#2390).
- Fix shared on-disk storage path on Windows (#2385).
-
DuckDB's on-disk storage locations now follow a unified policy. By default nothing is written outside the R session's temporary directory, with one exception: the extension cache is placed in the package library when it is writable and falls back to the temporary directory otherwise. Each location can be redirected through the
configargument ofduckdb(), an R option, or an environment variable. Configure the location for extensions and secrets with the newduckdb_extension_storage()andduckdb_secret_storage(), inspect the resolved locations withduckdb_storage_status(), and see?duckdb_storagefor the full resolution policy (#2370, #2372, #2377).These functions replace the experimental
duckdb_consolidate_secrets()introduced in 1.5.4.
-
Create
~/.duckdbso CI exercises the shared storage path (#2417). -
Install
tzdata-legacyfor legacy time zones likePST8PDT(#2409).
-
Document all S4 class slots; deprecate the legacy connection slots (#2416).
-
Document database-instance caching and driver reuse (#2399).
-
Cover extensions env-var semantics and lock message wording (#2418).
-
Skip DBItest timestamp roundtrip tests when
PST8PDTis unresolvable (#2408).
- Ci: Harden
format-suggestagainstpull_request_targetpwn requests (#93).
-
Update to DuckDB v1.5.4, see https://github.com/duckdb/duckdb/releases/tag/v1.5.4 for details.
-
Support writing
MAPcolumns viadbAppendTable()anddbWriteTable()(#2354). -
Add native
VARIANT(@thohan88, #2313) andTIME WITH TIME ZONE(#1807, #2336) data type support. -
Implement DBI Arrow API with
dbSendQueryArrow()and streaming (#2347, #2355). -
Store downloaded extensions inside the duckdb package install directory (#2327).
-
Add secret directory configuration, package startup message, and consolidation support via new experimental
duckdb_consolidate_secrets()(#2305, #2340).
-
Add
is_distinct_from()/is_not_distinct_from()dbplyr translations for compatibility with upcoming dbplyr 2.6.0 (#2326, #2332). -
Bump minimum R version requirement to 4.2.0 (#2233, #2334).
-
Add CRAN guards to prevent heavy C++ engine tests on CRAN (#2353, #2358).
-
Add comprehensive test coverage for
MAPtype reading (#2342).
-
Update to DuckDB v1.5.3, see https://github.com/duckdb/duckdb/releases/tag/v1.5.3 for details.
-
Add secret directory configuration, package startup message, and consolidation support via new experimental
duckdb_consolidate_secrets()(#2305, #2340). -
Add native
VARIANT(@thohan88, #2313) andTIME WITH TIME ZONE(#1807, #2336) data type support. -
Add
is_distinct_from()/is_not_distinct_from()dbplyr translations for compatibility with upcoming dbplyr 2.6.0 (#2326, #2332).
- Avoid rchk error in
RownamesDuplicate()(#2290, #2291).
-
Bump minimum R version requirement to 4.2.0 (#2233, #2334).
-
Store downloaded extensions inside the duckdb package install directory (#2327).
- Add comprehensive test coverage for
MAPtype reading (#2342).
-
Update to DuckDB v1.5.2, see https://github.com/duckdb/duckdb/releases/tag/v1.5.2 for details.
-
Fix compiler warning on recent clang on macOS.
- Use
TRY_CAST()instead ofCAST()in dplyr SQL translation for type conversion functions (#2230, #2231).
- Use
R_getRegisteredNamespace()in R 4.6.
- Describe branching strategy (#2280, #2281).
-
Use explicit default duckdb connection for arrow tests (#2301).
-
Rework arrow tests, prepare for compatibility with dbplyr 2.6.0 (#2300).
- Update to DuckDB v1.5.1, see https://github.com/duckdb/duckdb/releases/tag/v1.5.1 for details.
GEOMETRYcolumns can be returned, either as BLOBs (default) or as wk objects (via the wk package) usingdbConnect(geometry = "wk")(#2278, #2279).
-
Fix
-Wdeprecatedcompiler warnings (#2295, #2296) and protection buglet (#2294). -
Use
gtarwhen available to suppress Apple extended attribute warnings on Linux (#2227, #2228).
-
Update to DuckDB v1.5.0, see https://github.com/duckdb/duckdb/releases/tag/v1.5.0 for details.
-
Support
descendingandnulls_firstinexpr_window()andrel_order()(#2074, #2075).
- The dbplyr translation of
as.numeric()andas.double()usesDOUBLEinstead ofNUMERIC(#2023, #2031).
- Update to testthat edition 3.
- Avoid
ATTRIB()for compatibility with R 4.6, materialize ALTREP row names to integer sequence with full ALTREP methods (#2034).
-
Update to DuckDB v1.4.4, see https://github.com/duckdb/duckdb/releases/tag/v1.4.4 for details.
-
Add operator expressions (@toppyy, #1828).
- Bump vendored cpp11 to v0.5.3.
- Add alternative installation method to README (@szarnyasg, #1819).
-
Update to DuckDB v1.4.3, see https://github.com/duckdb/duckdb/releases/tag/v1.4.3 for details.
-
Add
str_ilike()support (@edward-burn, #1810, #1811).
-
Fail with non-UTF8-encoded strings during data frame scan instead of attempting to reencode (#1795).
-
Avoid inclusion of raw error message in the output.
-
Fix translation of
quantile()to use DuckDB's nativeQUANTILE_CONT()syntax (#1734, #1735).
- Remove redundant R version checks from tests (#1815, #1816).
- Update to DuckDB v1.4.2, see https://github.com/duckdb/duckdb/releases/tag/v1.4.2 for details.
- Update to DuckDB v1.4.1, see https://github.com/duckdb/duckdb/releases/tag/v1.4.1 for details.
-
Add support for wildcards in
tbl_file()paths (#1614, @rplsmn). -
Add
n_distinct(..., na.rm = TRUE)support for multiple passed columns (@lschneiderbauer, #1588).
- Fix Valgrind error.
- Ensure be able to install duckdb extensions on release version (@eitsupi, #1586).
- Update to DuckDB v1.4.0, see https://github.com/duckdb/duckdb/releases/tag/v1.4.0 for details.
-
New experimental
sql_query(),sql_exec(), anddefault_conn()to simplify the most important operations for interactive use (#1564). -
tbl_file()allows omitting thesrcargument, falling back to the default connection. -
Full support for deep structs generated by
struct_pack()for ALTREP (#1545).
-
Fix progress display for fractional progress values (#1499, #1505).
-
Extensions can be installed again.
- Update to the current v1.3-ossivalis branch, see https://github.com/duckdb/duckdb/tree/v1.3-ossivalis for details.
-
Fix timezone conversion for invalid timestamps with
tz_out_convert = "force"(#1474). -
Substitute invalid UTF-8 characters in error messages to avoid a failure when reporting the error.
-
Fix index calculation for retrieval of arrays (#1473).
-
Fix conversion for retrieval of large enums.
-
Fix compiler error in debug build (@joakimlinde, #1368).
-
Add rich ErrorData-based error handling with structured error information (#1479).
-
Safeguard against deadlocks when accidentally issuing queries from the progress bar handler or other callbacks (#1475).
-
dbGetInfo()gets the version from a hard-coded value and not from a DuckDB query (#1481). -
Package uses two cores by default for compilation (#1478).
- Document vendoring process and main/next branch relationship (#1488).
- Add
local_con()test fixture for cleaner DuckDB connection management (#1476).
- Update to duckdb v1.3.2, see https://github.com/duckdb/duckdb/releases/tag/v1.3.2 for details.
- Update to duckdb v1.3.1, see https://github.com/duckdb/duckdb/releases/tag/v1.3.1 for details.
-
Correct dbplyr translations for
str_starts()andstr_ends()(#1182, #1247). -
Fix multiarch build on R 4.1 for Windows.
-
Update to duckdb v1.3.0, see https://github.com/duckdb/duckdb/releases/tag/v1.3.0 for details.
-
Add ingestion of matrices (@joakimlinde, #1150).
-
Fix rchk (#1173).
-
Fix compiler warning (@joakimlinde, #1172).
- Skip timing tests on CRAN.
-
Update to duckdb v1.2.2, see https://github.com/duckdb/duckdb/releases/tag/v1.2.2 for details.
-
Add support for duckdb arrays in R (@joakimlinde, #102, #1090). To enable, connect with
dbConnect(duckdb(), array = "matrix")(@joakimlinde, #1125). -
Support fractional seconds in
TIMEandINTERVALdata (#1109). -
The
autoload_known_extensionsconfiguration option is now enabled by default (#582, #1084, #1134). -
Mention column name for conversion errors (#1108).
-
Require R >= 4.1 (#1087, #1133).
-
Types exposed through ALTREP are the same as through DBI (#1111), including
STRUCT. This enables support more types in upcoming duckplyr versions. -
Perform optional checks for ALTREP compatibility in
rel_from_df()andexpr_constant()(#1117). -
Perform time zone conversion in the C++ layer where possible, to support ALTREP (#1130).
-
Improve developer experience:
pkgload::load_all()now works, source files are rebuilt if header files change, configure clangd (#1128). -
Add dots with checks to unexported functions (#1115).
-
Clean up edge case for fetching zero rows (#1104).
-
Avoid test for timings on CRAN (#1101).
- Tweak README.
- Update to duckdb v1.2.1, see https://github.com/duckdb/duckdb/releases/tag/v1.2.1 for details.
-
dbExecute(con, "CALL ...")no longer attempts to access the resulting data frame. UsedbGetQuery(con, "CALL ...")to access the data (#1062, #1080). -
Fix support for the connections pane in RStudio and Positron (@dfalbel, #1063).
-
New
rel_to_view()(#1075). -
New internal
AltrepDataframeRelation, used withrel_from_altrep_df(wrap = TRUE)(#949, #1072). -
Try relational materialization only once (#1066).
-
Update vendored cpp11 to 0.5.2 (#1068).
-
Avoid calls to non-API R functions.
- Breaking change: Remove substrait API:
duckdb_get_substrait(),duckdb_get_substrait_json(),duckdb_prepare_substrait(),duckdb_prepare_substrait_json()(@pdet, #1021).
-
Update to duckdb v1.2.0, see https://github.com/duckdb/duckdb/releases/tag/v1.2.0 for details.
-
Progress is shown for slow operation. This is on by default in interactive mode and can be controlled by setting the
"duckdb.progress_display"option to a logical scalar (#199, #951, @meztez). -
Add translation for
median()(@toppyy, #993, #1011). -
Floor sub-day precision date before casting to int (@toppyy, #517, #981).
-
Set value returned by
PRAGMA user_agentto r-dbi (#707, @elefeint).
-
Remove unconditional use of
CPPHTTPLIB_USE_POLLto support compilation with R 4.0 and R 4.1 again (@Antonov548, #1043). -
Support reading from multiple Parquet files again (#1015, #1024).
-
Fix translation for
add_days()andadd_years()clock functions (#976, @IoannaNika).
- Make
cleanuptruly idempotent (#612, #940).
- Sync vendoring script with igraph (#936).
-
Limit automatic materialization by number of rows or number of cells (#1017).
-
New internal
rapi_rel_to_csv(),rapi_rel_to_table(), andrapi_rel_insert();rapi_rel_to_parquet()gainsoptionsargument (#867).
-
Skip tests that are about to fail.
-
Sync tests.
-
With
duckdb(environment_scan = TRUE), data frame objects are available as views in duckdb SQL queries (#140, #164). -
Update vendored cpp11 to 0.5.1 (#636).
-
Make
./cleanupscript reentrant (@Antonov548, #612, #634). -
Fix installation of extensions (#623).
-
Fix rchk and UB errors (#635).
-
Avoid loading rlang during startup (#601).
- Mention
xzrequirement inDESCRIPTION.
-
Update to duckdb v1.1.3, see https://github.com/duckdb/duckdb/releases/tag/v1.1.3 for details.
-
New
duckdb.materialize_callbackoption, supersedesget_last_rel()(#589). -
New
rel_explain_df()andrel_tostring()(#587). -
Handle empty child values for list constants (#186, @romainfrancois).
-
Undef
TRUEandFALSE(#595). -
Remove
enable_materializationargument torel_from_altrep_df()in favor of creating a new data frame when needed (#588). -
Flip argument order for
expr_comparison()(#585). -
Keep
cleanupfiles to accommodate different build scenarios (#536).
- Update to duckdb v1.1.2, see https://github.com/duckdb/duckdb/releases/tag/v1.1.2 for details.
-
Long-running queries can now be canceled immediately with Ctrl + C (terminal) or Escape (RStudio IDE and Workbench) (#514, #515).
-
Add
col.typesargument toduckdb_read_csv()(#445, @eli-daniels). -
Rethrow errors with rlang if installed (#522).
-
Improve error message for parsing erros during statement extraction (tidyverse/duckplyr#219, #521).
-
Avoid RStudio IDE crashes when ending session with open objects (#520).
-
rfunsextension:%in%works correctly as part of a&conjunction (#528).
-
New interal APIs:
rapi_get_last_rel_mat(),rapi_rel_to_altrep(allow_materialization = TRUE),rapi_rel_from_altrep_df(enable_materialization)(#526). -
xz-compress duckdb sources in the tarball (#530).
-
rfunsextension: Fix signedness.
-
Update to duckdb v1.1.1, see https://github.com/duckdb/duckdb/releases/tag/v1.1.1 for details.
-
Add comparison expression to relational API (@toppyy, #457).
-
Temporarily change
max_expression_depthduring ALTREP evaluation (#101, #460). -
Add
temporaryargument toduckdb_read_csv()(@ThomasSoeiro, #223).
-
Update vendored extension sources to hannes/duckdb-rfuns@20cde009b51b9355e6041b72b87105c6b45793fe.
-
Remove warnings for uninitialized variables.
-
Update to duckdb v1.1.0, see https://github.com/duckdb/duckdb/releases/tag/v1.1.0 for details.
-
Upgrade vendored cpp11 to 0.5.0.
- Reduce the package installation size on macOS (#185).
-
Upgrade vendored cpp11 to 0.4.7 to fix compilation with R-devel.
-
Support
dplyr::tbl(conn, I(...)).
- Update to duckdb v1.0.0, see https://github.com/duckdb/duckdb/releases/tag/v1.0.0 for details.
- Update to duckdb v0.10.3, see https://github.com/duckdb/duckdb/releases/tag/v0.10.3 for details.
- Support fetching
MAPtype (#61, #165). - Add dbplyr translations for
clock::date_count_between()(@edward-burn, #163, #166). round()duckdb translation usesROUND_EVEN()instead ofROUND()(@lschneiderbauer, #146, #157).- New
sortargument torel_order()(@toppyy, #168). - Add dbplyr translations for
clock::add_days(),clock::add_years(),clock::get_day(),clock::get_month(), andclock::get_year()(@edward-burn, #153).
- Correct usage of
win_current_group()instead ofwin_current_order()in SQL translation (@lschneiderbauer, #173, #175).
- Update to duckdb v0.10.2, see https://github.com/duckdb/duckdb/releases/tag/v0.10.2 for details.
- The
"difftime"class is now mapped to theINTERVALdata type (#151). - Use latest tests from DBItest (#148).
- Implement
n_distinct()for multiple arguments using duckdb structs (@lschneiderbauer, #110, #122). - Include rfuns extension (hannes/duckdb-rfuns#78, #144).
- Map
NAtoSQLNULL(#143).
rel_sql(rel, "{{sql}}")works even on a read-only database (@Tmonster, #138).- Avoid
R CMD checkwarning regardingSETLENGTH()andSET_TRUELENGTH()(#145).
- Update to duckdb v0.10.1, see https://github.com/duckdb/duckdb/releases/tag/v0.10.1 for details.
- Fix shutdown semantics for the driver object created by
duckdb(). A database file is closed (and available to be opened from another session) after the last connection that uses this file callsdbDisconnect(). Theshutdownargument todbDisconnect()or theduckdb_shutdown()functions are no longer necessary. Two database connections from the same R session can access the same file concurrently in read-write mode (#124).
-
Don't run tests that invoke re2 by default (#121, #127).
-
Fix compilation for R 4.0 and R 4.1, regression introduced in v0.10.0. Using
librstrtmgr.afrom UCRT build of rtools40 (#130).
-
The C++ core is now vendored commit by commit, once every five minutes. Vendoring stops if
R CMD checkfails or if a previously unreleased tag is reached. -
New maintainer: Kirill Müller.
- Add rhub2 workflow.
-
dplyr::tbl()works again when a Parquet or CSV file is passed instead of a table name (#38, #91). -
DBI::dbQuoteIdentifier()correctly quotes identifiers that start with a digit (#67, #92). -
Align the argument order of
dbWriteTable()with the DBI specs (@eitsupi, #43, #49).
-
New
tbl_file()andtbl_query()to explicitly access tables and queries as dbplyr lazy tables (#96). Thecacheargument totbl()and to the new functions must be named. -
Initial ALTREP support for
LISTlogical type (@romainfrancois, #77). -
Update core to duckdb v0.10.0 (#90).
-
New private
rel_to_parquet()to write a relation to parquet (@Tmonster, #46).
-
Change directory location for extensions and secrets for v.0.10.0 release (@Tmonster, #73).
-
Remove last instance of
default_connection()(#50).
-
Add list of contributors (#2, #94).
-
Use pkgdown BS5 (@maelle, #31, #70) with DuckDB logo (#76, @romainfrancois).
-
Link to R documentation page.
-
Include
NEWS.mdon CRAN (#48, @olivroy).
-
Add csv reading test for
duckdb_read_csv(na.strings = )(@Tmonster, #10). -
Fix snapshot tests.
-
Tweak tests for compatibility with v0.10.0 (#84).
- Fix compiler warning on R-devel (#45).
-
See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.9.2.
-
Add dbplyr translation for
prod()(#40, @m-muecke).
- Fix LTO checks on CRAN.
-
See blog post at https://duckdb.org/2023/09/26/announcing-duckdb-090.html.
-
See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.9.1.
-
Move sources to https://github.com/duckdb/duckdb-r (@krlmlr).
-
Add ADBC integration with the adbcdrivermanager package (duckdb/duckdb#8172, @paleolimbot).
-
Full support of lists and structs in R (duckdb/duckdb#8503, @krlmlr).
- Internal changes to support the duckplyr package.
-
Compatibility with dbplyr.
-
Internal changes to support the duckplyr package.
- Fix CRAN checks.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.8.1.
- See blog post at https://duckdb.org/2023/05/17/announcing-duckdb-080.html.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.7.1.
- See blog post at https://duckdb.org/2023/02/13/announcing-duckdb-070.html.
- New
duckdb_prepare_substrait_json().
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.6.1.
- See blog post at https://duckdb.org/2022/11/14/announcing-duckdb-060.html.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.5.1.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.5.0.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.4.0.
- Minor changes for CRAN compatibility.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.3.4.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.3.3.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.3.2.
- See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.3.1.
-
See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.3.0.
-
See release notes at https://github.com/duckdb/duckdb/releases/tag/v0.2.9.
This preview release of DuckDB is named "Ceruttii" after a long-extinct relative of the present-day Harleqin Duck (Histrionicus Ceruttii). Binary builds are listed below. Feedback is very welcome.
Note: Again, this release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
- #2064:
RANGE/GENERATE_SERIESfor timestamp + interval - #1905: Add
PARQUET_METADATAandPARQUET_SCHEMAfunctions - #2059, #1995, #2020 & #1960: Window
RANGEframing,NTH_VALUEand other improvements
- Many Arrow integration improvements
- Many ODBC driver improvements
- #1815: Initial version: SQLite UDF API
- #2001: Support DBConfig in C API
- #1975, #1876 & #2009: Unified row layout for sorting, aggregate & joins
- #1930 & #1904: List Storage
- #2050: CSV Reader/Casting Framework Refactor & add support for
TRY_CAST - #1950: Add Constant Segment Compression to Storage
- #1957: Add pipe/stream file system
This preview release of DuckDB is named "Mollissima" after the Common Eider (Somateria mollissima). Binary builds are listed below. Feedback is very welcome.
Note: This release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
Major changes:
SQL
- #1847: Unify catalog access functions, and provide views for common PostgreSQL catalog functions
- #1822: Python/JSON-Style Struct & List Syntax
- #1862: #1584 Implementing
NEXTAFTERfor float and double - #1860:
FIRSTimplementation for nested types - #1858:
UNNESTtable function & array syntax in parser - #1761: Issue #1746: Moving
QUANTILE
APIs
- #1852, #1840, #1831, #1819 and #1779: Improvements to Arrow Integration
- #1843: First iteration of ODBC driver
- #1832: Add visualizer extension
- #1803: Converting Nested Types to native python
- #1773: Add support for key/value style configuration, and expose this in the Python API
Engine
- #1808: Row-Group Based Storage
- #1842: Add (Persistent) Struct Storage Support
- #1859: Read and write atomically with offsets
- #1851: Internal Type Rework
- #1845: Nested join payloads
- #1813: Aggregate Row Layout
- #1836: Join Row Layout
- #1804: Use Allocator class in buffer manager and add a test for a custom allocator usage
This preview release of DuckDB is named "Jamaicensis" after the blue-billed Ruddy Duck (Oxyura jamaicensis). Binary builds are listed below. Feedback is very welcome.
Note: This release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
Also note: Due to changes in the internal storage (#1530), databases created with this release wil require somewhat more disk space. This is transient as we are working hard to finalise the on-disk storage format.
Major changes:
Engine
- #1666: External merge sort, #1580: Parallel scan of ordered result and #1561: Rework physical ORDER BY
- #1520 & #1574: Window function computation parallelism
- #1540: Add table functions that take a subquery parameter
- #1533: Using vectors, instead of column chunks as lists
- #1530: Store null values separate from main data in a Validity Segment
SQL
- #1568: Positional Reference Operator
#1etc. - #1671:
QUANTILEvariants and #1685: Temporal quantiles - #1695: New Timestamp Types
TIMESTAMP_NS,TIMESTAMP_MSandTIMESTAMP_NS - #1647: Add support for UTC offset timestamp parsing to regular timestamp conversion
- #1659: Add support for
USINGkeyword inDELETEstatement - #1638, #1663, #1621 & #1484: Many changes arount
ARRAYsyntax - #1610: Add support for
CURRVAL - #1544: Add
SKIPas an option toREAD_CSVandCOPY
APIs
- #1525: Add loadable extensions support
- #1711: Parallel Arrow Scans
- #1569: Map-style UDFs for Python API
- #1534: Extensible Replacement Scans & Automatic Pandas Scans and #1487: Automatically use parquet or CSV scan when using a table name that ends in
.parquetor.csv - #1649: Add a QueryRelation object that can be used to convert a query directly into a relation object, #1665: Adding from_query to python api
- #1550: Shell: Add support for Ctrl + arrow keys to linenoise, and make Ctrl+C terminate the current query instead of the process
- #1514: Using
ALTREPto speed up string column transfer to R - #1502: R: implementation of Rstudio connection-contract tab
This preview release of DuckDB is named "Falcata" after the Falcated Duck (Mareca falcata). Binary builds are listed below. Feedback is very welcome.
Note: This release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
Major Changes:
Engine
- #1356: Incremental Checkpointing
- #1422: Optimize Top N Implementation
SQL
- #1406, #1372, #1387: Many, many new aggregate functions
- #1460:
QUANTILEaggregate variant that takes a list of quantiles & #1346: Approximate Quantiles - #1461:
JACCARD, #1441LEVENSHTEIN&HAMMINGdistance scalar function - #1370:
FACTORIALscalar function and ! postfix operator - #1363:
IS (NOT) DISTINCT FROM - #1385:
LIST_EXTRACTto get a single element from a list - #1361: Aliases in the
HAVINGclause (fixes issue #1358) - #1355: Limit clause with non constant values
APIs:
- #1430 & #1424: DuckDB WASM builds
- #1419: Exporting the appender api to C
- #1408: Add blob support to C API
- #1432, #1459 & #1456: Progress Bar
- #1440: Detailed profiler.
This preview release of DuckDB is named "Jubata" after the Australian Wood Duck (Chenonetta jubata). Binary builds are listed below. Feedback is very welcome.
Note: This release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
Major changes: SQL
- #1231: Full Text Search extension
- #1309: Filter Clause for Aggregates
- #1195:
SAMPLEOperator - #1244:
SHOWselect queries - #1301:
CHRandASCIIfunctions & #1252: AddGAMMAandLGAMMAfunctions
Engine
- #1211: (Mostly) Lock-Free Buffer Manager
- #1325: Unsigned Integer Types Support
- #1229: Filter Pull Up Optimizer
- #1296: Optimizer that removes redundant
DELIM_GETandDELIM_JOINoperators - #1219:
DATE,TIMEandTIMESTAMPrework: move to epoch format & microsecond support
Clients
- #1287 and #1275: Improving JDBC compatibility
- #1260: Rework client API and prepared statements, and improve DuckDB -> Pandas conversion
- #1230: Add support for parallel scanning of pandas data frames
- #1256: JNI appender
- #1209: Write shell history to file when added to allow crash recovery, and fix crash when .importing file with invalid
- #1204: Add support for blobs to the R API and #1202: Add blob support to the python api
Parquet
- #1314: Refactor and nested types support for Parquet Reader
This preview release of DuckDB is named "Serrator" after the Red-breasted merganser (Mergus serrator). Binary builds are listed below. Feedback is very welcome.
Note: This release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
Major changes:
SQL:
- #1179: Interval Cleanup & Extended
INTERVALSyntax - #1147: Add exact
MEDIANandQUANTILEfunctions - #1129: Support scalar functions with
CREATE FUNCTION - #1137: Add support for (
NOT)ILIKE, and optimize certain types ofLIKEexpressions
Engine
- #1160: Perfect Aggregate Hash Tables
- #1133: Statistics Rework & Statistics Propagation
- #1144: Common Aggregate Optimizer, #1143: CSE Optimizer and #1135: Optimizing expressions in grouping keys
- #1138: Use predication in filters
- #1071: Removing string null termination requirement
Clients
- #1112: Add DuckDB node.js API
- #1168: Add support for Pandas category types
- #1181: Extend DuckDB::LibraryVersion() to output dev version in format
0.2.3-devXXX& #1176: Python binding: Add module attributes for introspecting DuckDB version
Parquet Reader:
- #1183: Filter pushdown for Parquet reader
- #1167: Exporting Parquet statistics to DuckDB
- #1162: Add support for compression codec in Parquet writer & #1163: Add ZSTD Compression Code and add ZSTD codec as option for Parquet export
- #1103: Add object cache and Parquet metadata cache
This is a preview release of DuckDB. Starting from this release, releases get named as well. Names are chosen from species of ducks (of course). We start with "Clypeata".
Note: This release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.
Binary builds are listed below. Feedback is very welcome. Major changes:
SQL
- #1057: Add PRAGMA for enabling/disabling optimizer & extend output for query graph
- #1048: Allow CTEs in subqueries (including CTEs themselves) and #987: Allow CTEs in CREATE VIEW statements
- #1046: Prettify Explain/Query Profiler output
- #1037: Support FROM clauses in UPDATE statements
- #1006: STRING_SPLIT and STRING_SPLIT_REGEX SQL functions
- #1000: Implement MD5 function
- #936: Add GLOB support to Parquet & CSV readers
- #899: Table functions information_schema_schemata() and information_schema_tables() and #903: Add table function information_schema_columns()
Engine
- #984: Parallel grouped aggregations and #1045: Some performance fixes for aggregate hash table
- #1008: Index Join
- #991: Local Storage Rework: Per-morsel version info and flush intermediate chunks to the base tables
- #906: Parallel scanning of single Parquet files and #982: ZSTD Support in Parquet library
- #883: Unify Table Scans with Table Functions
- #873: TPC-H Extension
- #884: Remove NFC-normalization requirement for all data and add COLLATE NFC
Client
- #1001: Dynamic Syntax Highlighting in Shell
- #933: Upgrade shell.c to 3330000
- #918: Add in support for Python datetime types in bindings
- #950: Support dates and times output into arrow
- #893: Support for Arrow NULL columns
This is a preview release of DuckDB. Binary builds are listed below. Feedback is very welcome. Major changes:
Engine
- #770: Enable Inter-Pipeline Parallelism
- #835: Type system updates with #779:
INTERVALType, #858: Fixed-precisionDECIMALtypes & #819:HUGEINTtype - #790: Parquet write support
API
- #866: Initial Arrow support
- #809: Aggregate UDF support with #843: Generic
CreateAggregateFunction()& #752:CreateVectorizedFunction()using only template parameters
SQL
- #824:
strftimeandstrptime - #858:
EXPORT DATABASEandIMPORT DATABASE - #832: read_csv(_auto) improvements: optional parameters, configurable sample size, line number info
This is a preview release of DuckDB. Binary builds are listed below. Feedback is very welcome.
SQL:
- #730:
FULL OUTER JOINSupport - #732: Support for
NULLS FIRST/NULLS LAST - #698: Add implementation of the
LEAST/GREATESTfunctions - #772: Implement
TRIMfunction and add optional second parameter toRTRIM/LTRIM/TRIM - #771: Extended Regex Options
Clients:
- Python: #720: Making Pandas optional and add support for PyPy
- C++: #712: C++ UDF API
This is a preview release of DuckDB. Binary are listed below. Feedback is very welcome. Major changes: New website woo-ho!
Engine
- #653: Parquet reader integration
SQL
- #685: Case insensitive binding of column names
- #662: add
EPOCH_MSfunction and test cases
Clients
- #681: JDBC Read-only mode for and #677 duplicate()` method to allow multiple connections to same database
This is a preview release of DuckDB. Feedback is very welcome.
SQL
- SQL functions
IFandIFNULL#644 - SQL string functions
LEFT#620 andRIGHT#631 - #641:
BLOBtype support - #640:
LIKEescape support
Clients
- #627: Insertion support for Python relation API
This is the sixth preview release of DuckDB. Feedback is very welcome. Binary builds are available as well.
SQL
- Add / remove columns, change default values & column type #612
- Collation support
- CSV sniffer
READ_CSV_AUTOfor dialect, data type and header detection #582 SHOW&DESCRIBETables #501- String function
CONTAINS#488 - String functions
LPAD/RPAD,LTRIM/RTRIM,REPEAT,REPLACE&UNICODE#597 - Bit functions
BIT_LENGTH,BIT_COUNT,BIT_AND,BIT_OR,BIT_XOR&BIT_AGG#608
Engine
LIKEoptimization rules #559- Adaptive filters in table scans #574
- ICU Extension for extended Collations & Extension Support #594
- Extended zone map support in scans #551
- Disallow NaN/INF in the system #541
- Use UTF Grapheme Cluster Breakers in Reverse and Shell #570
Clients
- Relation API for C++ #509 and Python #598
- Java (TM) JDBC (R) Client for DuckDB #492 #520 #550
This is the fifth preview release of DuckDB. Feedback is very welcome. Binary builds can be found here: http://download.duckdb.org/alias/v0.1.6/
SQL
- #455 Table renames
ALTER TABLE tbl RENAME TO tbl2 - #457 Nested list type can be created using
LISTaggregation and unpacked with the newUNNESToperator - #463
INSTRstring function, #477PREFIXstring function, #480SUFFIXstring function
Engine
- #442 Optimized casting performance to strings
- #444 Variable return types for table-producing functions
- #453 Rework aggregate function interface
- #474 Selection vector rework
- #478 UTF8 NFC normalization of all incoming strings
- #482 Skipping table segments during scan based on min/max indices
Python client
- #451
date/datetimesupport - #467
descriptionfield for cursor - #473 Adding
read_onlyflag toconnect - #481 Rewrite of Python API using
pybind11
R client
- #468 Support for prepared statements in R client
- #479 Adding automatic CSV to table function
read_csv_duckdb - #483 Direct scan operator for R
data.frameobjects
This is the fourth preview release of DuckDB. Feedback is very welcome. Note: The v0.1.4 version was skipped because of a Python packaging issue.
Binary builds can be found here: http://download.duckdb.org/rev/59f8907b5d89268c158ae1774d77d6314a5c075f/
Major changes:
- #409 Vector Overhaul
- #423 Remove individual vector cardinalities
- #418
DATE_TRUNCSQL function - #424
REVERSESQL function - #416 Support for
SELECT table.* FROM table - #414 STRUCT types in query execution
- #431 Changed internal string representation
- #433 Rename internal type
index_ttoidx_t - #439 Support for temporary structures in read-only mode
- #440 Builds on Solaris & OpenBSD
Note: This release contains a bug in the Python API that leads to crashes when fetching strings to NumPy/Pandas #447
This is the third preview release of DuckDB. Feedback is very welcome. Binary builds can be found here: http://download.duckdb.org/rev/59f8907b5d89268c158ae1774d77d6314a5c075f/
Major changes:
- #388 Major updates to shell
- #390 Unused Column & Column Lifetime Optimizers
- #402 String and compound keys in indices/primary keys
- #406 Adaptive reordering of filter expressions
This is the third preview release of DuckDB. Feedback is very welcome. Binary builds can be found here: http://download.duckdb.org/rev/6fcb5ef8e91dcb3c9b2c4ca86dab3b1037446b24/
This is the second preview release of DuckDB. Feedback is very welcome. Binary builds can be found here: http://download.duckdb.org/rev/2e51e9bae7699853420851d3d2237f232fc2a9a8/
This is the first preview release of DuckDB. Feedback is very welcome.
Binary builds can be found here: http://download.duckdb.org/rev/c1cbc9d0b5f98a425bfb7edb5e6c59b5d10550e4/