Skip to content

duckdb

1.5.6Package record

DBI Package for the DuckDB Database Management System

55packages dependsuggested by 84
1.1Mdownloads / year
79.9%test coverage
13/13flavors OK

Overview

About

The DuckDB project is an embedded analytical data management system with support for the Structured Query Language (SQL). This package includes all of DuckDB and an R Database Interface (DBI) connector.

Changes in 1.5.6

Features

  • Update to DuckDB v1.5.6, see <https://github.com/duckdb/duckdb/releases/tag/v1.5.6> for details.
  • New experimental to_arrow_stream() streams a dbplyr table on DuckDB into Arrow batch by batch, where arrow::to_arrow() materializes the whole result first (#2803).
  • A duckdb_error condition carries the fields DuckDB attaches to an error: error_type, raw_message, extra_info and context, see ?duckdb_error (#2714). Errors raised by the package itself point at the calling function (#2637).
  • A database instance is cached under the path the engine resolves, so different spellings of one file and symlinks to it share one instance, and a lower-case Windows drive letter resolves on that drive (#2627).
  • The dbplyr backend translates clock::date_build() and difftime() (#2621).
  • An Arrow query result exposes its schema, and an empty batch, before the first fetch (#2781).
Show all changes in 1.5.6Hide the rest of the changes in 1.5.6

Compatibility

  • The dbplyr backend needs dbplyr 2.6.0 or later, and warns when an older dbplyr is loaded (#2605).
  • The installed package no longer ships the cpp11 headers under include/ (#2649).
  • The package compiles without warnings on the clang 23 and R-devel check flavors (#2617, #2698).
  • duckdb() and dbConnect() fail instead of silently ignoring settings a cached database instance cannot apply: a different read_only, a differing config entry, or home, shared_home, allow_extensions or environment_scan. dbConnect(drv, dbdir) also fails when drv already owns a different database file. Call duckdb_shutdown() first, or pass the settings to the duckdb() call that creates the instance (#2641).

Bug fixes

Crashes and hangs

  • A data frame parameter binds one struct per row instead of crashing R (#2818).
  • A list column of data frames or factors no longer crashes or hangs a parallel scan (#2834), and lazy (ALTREP) vectors inside struct, matrix and list columns are materialized on R's thread before a scan reads them (#2582).
  • Writing a named list with an empty value under map = "list_of" no longer crashes (#2866).
  • Converting VARIANT values to R no longer exposes intermediate objects to the garbage collector (#2750, #2753).
  • The progress display keeps its R callback alive and calls it only on R's thread (#2828), and prints at most every half second (#2844).
  • Opening a database whose previous instance is still held by a connection or an unfinished result no longer spins at full CPU, it reports that the database is still in use (#2759).
  • A failure inside a lazy data frame's ALTREP method no longer strips duckdb_error from later errors or leaves a partly converted column behind (#2829), and an error raised while such a method runs no longer calls into R (#1796, #1797).

Types and time zones

  • TIMESTAMPTZ columns take their tzone attribute from the session's TimeZone setting, also in lazy relations, and stay in UTC when the icu extension is not available (#184, #2401).
  • dbQuoteLiteral() keeps the sub-second part of a POSIXct value (#2646, #2763).
  • integer64 columns and parameters are always written as BIGINT, whatever the bigint setting (#2819).
  • Integer-backed Date and difftime columns keep their NA values, and a data frame column with several fields writes as STRUCT (#2808).
  • A table whose columns R cannot hold is still found and listed, and a query returning such a column fails before it runs, naming the column (#2808).

Connections and storage

  • An in-memory database spills to its own directory below tempdir() out of the box, created only when a query spills and removed when the instance shuts down. An on-disk database keeps DuckDB's <dbdir>.tmp default, as the DuckDB CLI does (#2562).
  • ~/.duckdb is no longer created for a session that only looks interactive, such as one with options(rlang_interactive = TRUE). Without a person to answer the prompt, the per-session directory is used (#2550).
  • A database path is normalized only as far as it resolves, so a path that cannot be resolved is handed to the engine rather than refused (#455, #2623), and a dbdir that cannot be created is reported against the user's call (#2822).
  • A dbdir that an extension handles, such as a URL, is no longer treated as a file (#2641).
  • dbIsValid() on a driver no longer opens the database (#2754).

Queries and results

  • A PRAGMA runs after the statements before it in one query string (@t-kalinowski, #2792). Its expansion no longer leaves a transaction open or refuses a LOAD halfway, and an empty one can end a query (#2845).
  • dbListFields() and dbAppendTable() read the columns of a table named by Id() correctly (#2848).
  • dbClearResult() frees the unread results of a multi-row bind at once, not at the next garbage collection (#2784, #2825), and ends the query of an Arrow stream that was not read to the end (#2793).

Arrow

  • Reading an Arrow stream that another statement invalidated is an error, not the end of the stream (#2775), and an Arrow stream keeps its connection's client context alive (#2790).
  • dbFetchArrowChunk() builds the final empty chunk for LIST and INTERVAL columns (#2774), and each dbFetchArrowChunk() and dbFetchArrow() call uses its own chunk_size (#2791).
  • duckdb_fetch_arrow() and duckdb_fetch_record_batch() refuse a cleared result, as the other result methods do (#2785, #2821).

Performance

  • Release the ALTREP query result after materialization and transformation (@toppyy, #1027).
  • The list of valid time zones is read once per session, and again when TZDIR changes (#2786, #2810).

Documentation

  • New reference pages ?duckdb_types and ?duckdb_types_arrow catalog every DuckDB type in and out of R, through R vectors and through Arrow, geometry included (#2836, #2837, #2850, #2861).
  • The new reference page ?duckdb_memory and the help pages for fetching and writing data describe the memory a query takes (#2666).
  • ?duckdb describes what keeps a database instance open and the limitations known today (#2823, #2849).
  • The connection's help page describes how a string holding several statements runs (#2835).
  • The README states the package's goals and non-goals (#2731).

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 95.4 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-09-29
  • ERROR12 OK, 1 ERROR2026-09-02
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-06-21
Show 8 earlier changesHide 8 earlier changes
  • WARNING11 OK, 2 WARNING2026-05-24
  • ERROR11 OK, 1 WARNING, 1 ERROR2026-05-17
  • WARNING12 OK, 1 WARNING2026-05-15
  • ERROR12 OK, 1 ERROR2026-05-13
  • OK13 OK2026-05-02
  • ERROR11 OK, 1 ERROR2026-04-25
  • NOTE11 OK, 3 NOTE2026-03-18
  • ERROR5 OK, 4 NOTE, 4 WARNING, 1 ERROR2026-03-10
Advisories

none known

Documentation

In release 1.5.6
READMEYes · 1,038 wordsVignettesNoNEWSYes · 100% structured · mentions 1.5.6Citation fileNoWebsiteYes · pkgdown
Help pages
20 (6 internal)includes a package overview page
Examples that run
100%9 run in a plain check (8 of them under a condition)
Exported functions with examples
73%
Documented parameters
88%
Return-value docs
73%
Help pages citing references
0%

Downloads

1.1M
CRAN downloads in the past year
Rank #325 · ~3K/day · ~89.9K/mo
Daily download trend is not available in this view yet.
101.3K30 days
320.7K90 days
1.1M1 year
Compare downloads with other packages →
Also on18K r2u10 autocran27.1K conda_forge108 c2d4u

Repository

229Stars
56Forks
35Open issues
56Open PRs
35Releases
5,563Commits
34Commit identities
databaseduckdbolapr
5,563 commits · Last activity 2026-10-14 · +1.3% stars, 30d · Default branch at 1.5.6.9003, ahead of CRAN 1.5.6 (checked 2026-10-11) · Discussions: 14 posts
Responsiveness
How these are sampled
PRs merged (all time)
84%
Median days to close, 50 most recently updated closed issues
130
Median days to close, 50 most recently updated closed PRs
1

Stars over time

2025-10-08 · 1902026-10-19 · 229
PracticesBeta

12 development-tooling and community-health practices detected across 6 families in the upstream repository

Checks run against github.com/duckdb/duckdb-r on 2026-10-11.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux and Windows

Docs source (4)
README.Rmdpkgdown

GitHub Pages site last deployed 2026-10-01 · The repository has a site deploy workflow

pkgdown site last built 2026-10-01

Reproducibility and dev environment (1)
Makefile
CRAN release process (2)
cran-comments.mdrevdep/
Show all practicesHide 2 practices
Lint, format, editor (2)
AirRStudio project
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • GitHub Copilotfirst seen 2025-09-07
    Seen in the repository: .github/copilot-instructions.md
    Pull request: opened by its own account
    Commits: 40 by its own account · at least 17 crediting it in the message
  • Claude Codefirst seen 2026-04-30
    Seen in the repository: .claude, .claude/skills, CLAUDE.md
    Named in .Rbuildignore: .claude, CLAUDE.md
    Pull request it wrote: opened by a project member
    Commits: 72 by its own account · at least 424 crediting it in the message
Shared conventions any agent may read, so they name no particular tool.
Seen in the repository: AGENTS.md
From outside contributors
  • Claude Code
    Pull requests: 17 from outside contributors, first on 2026-09-12, 17 from forks
Models named in its commits
  • Claude Opus 5.527 commits · Sep 2026
  • Claude Opus 4.822 commits · Jun to Jul 2026
  • Claude Opus 514 commits · Jul to Sep 2026
  • Claude Fable 55 commits · Jul 2026
  • Claude Fable 5.12 commits · Sep 2026

Some of these counts are a minimum, because the search stopped before the oldest commits.

Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
17 external dependencies (excludes base and recommended)

Installing duckdb adds 1 package (0 with compiled code, 727 KB of source tarballs). Heaviest: DBI 727 KB.

Depends (2)
R >= 4.2.0DBI
Imports (2)
methodsutils
LinkingTo (0)
none
Enhances (0)
none

People & History

People (27)
Maintainer since 0.10.1 (2024) · added in 0.10.1
Copyright holder · added in 0.2.6
Copyright holder
Copyright holder · added in 0.2.2
Copyright holder
Copyright holder
Copyright holder
Copyright holder
Show 16 more copyright holdersHide 16 copyright holders
Copyright holder · added in 0.2.6
Copyright holder · added in 0.2.6
Copyright holder · added in 0.2.6
Copyright holder
Copyright holder · added in 0.2.6
Copyright holder
Copyright holder · added in 0.2.6
Copyright holder
Copyright holder · added in 0.3.2
Copyright holder
Copyright holder
Copyright holder
Copyright holder
Copyright holder

Previously maintained by Hannes Mühleisen (0.2.1 to 0.10.0).

Listed in earlier versions (2)
DuckDB Contributors
no longer listed · 0.2.1 to 0.3.1-1
no longer listed · 0.2.2-1
Releases (69)

Pick two releases to compare their code metrics.

Show 60 earlier eventsHide 60 earlier events

Package metadata

First published
2020-09-10
Total releases
69 / 6 yrs
License
MIT + file LICENSE OSI · relicensed from MPL in 0.3.4
Minimum R
≥ 4.2.0
Download size
4.6 MB
Appears in task views

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("duckdb")
Müller, K., Apache Software Foundation, Art.sy, Inc., Cameron Desrochers, Facebook Inc., Google Inc., Jiahao Chen, Jonas Fonseca, Lukas Fittl, Melissa O'Neill, Oran Agra, PCG Project contributors, PostgreSQL Global Development Group, RAD Game Tools, Redis Labs, Inc., Rich Geldreich, Salvatore Sanfilippo, Steven G. Johnson, Stichting DuckDB Foundation, Tenacious Software LLC, The RE2 Authors, The Regents of the University of California, Tony Kelman, Valve Software, Victor Zverovich, Mühleisen, H., & Raasveldt, M. (2026). duckdb: DBI Package for the DuckDB Database Management System (Version 1.5.6) [Computer software]. https://doi.org/10.32614/CRAN.package.duckdb

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for duckdb version 1.5.6 [Data set]. HJJB, LLC. Data release v2026-10-19. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-19, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy