← Back to all sparks
D

dbplyr

ANALYTICS
Velocity0.0

Database backend for dplyr that translates R code into SQL queries

dbplyr ends its two-year backend migration by dropping 1st edition support outright

sqldplyrdatabase-backendsbreaking-changestidyverse
Current state
dbplyr translates dplyr code into SQL, and 2.6.0 closes a migration that has been running since 2023: first-edition backends no longer work at all. The same release converts a long list of soft deprecations into hard failures and removes functions deprecated as far back as 2019. The releases before it were translation-quality work across SQL Server, Redshift, Snowflake, Postgres, Spark and Teradata.
Where it's heading
The package is trading compatibility surface for a smaller, more consistent core it can actually evolve — qualified table names were overhauled in 2.5.0, sql() and ident() were refactored internally, and the cte argument gave way to a single sql_options() entry point. Backend breadth keeps growing at the translation level even as the extension API narrows.
Prediction
With the edition split finally gone, expect the next cycle to spend its budget on dialect translations and the newer Spark/Databricks path rather than on further deprecation.

Recent moves

  1. 1mo ago

    1st edition backends removed; a wave of deprecations goes defunct

    ⚡ SPARK

    The release the last two years were building toward. Every remaining first-edition backend stops working, previously-warning deprecations become errors, and long-dead functions are deleted — a deliberate reduction of the surface dbplyr has to keep translating.

    View source ↗
  2. 11mo ago

    Date and aggregate translation fixes across six SQL dialects

    Corrects difftime() sign handling and adds date_count_between() on SQL Server, Redshift, Snowflake, Postgres and Spark, and moves SQL Server to COUNT_BIG so count() survives large tables. Argument checks are tightened enough that some previously silent failures now error.

    View source ↗
  3. 2y ago

    Qualified table names overhauled; I() becomes the simple path

    Rewrites how schemas and catalogs are specified, restoring ident_q() and in_catalog() usage and removing the unsuppressable warnings that came with the previous attempt. Also adds clock function translations across four dialects.

    View source ↗
  4. 2y ago

    Preliminary Databricks Spark SQL backend; join fixes

    Adds the Spark SQL backend that later releases keep refining, alongside a batch of breaking argument renames in the sql_query_*() family and repairs to full_join, semi_join and Oracle connections.

    View source ↗
  5. 2y ago

    dbplyr 2.3.4

    A hot patch for CRAN check failures with no functional change.

    View source ↗
  6. 3y ago

    dbplyr 2.3.3

    A hot patch for CRAN check failures with no functional change.

    View source ↗