Skip to contents

duckplyr 0.3.99.9000 (2024-05-08)

Bug fixes

  • Avoid translating a %in% b if b is a column (#160).
  • Fix NA %in% letters case (#159).
  • Distinguish between constant NA and those used in an expression (#157).
  • head(-1) forwards to the default implementation (#131, #156).
  • Fix cli syntax for internal error message (#151).
  • More careful detection of row names in data frame.
  • Always check roundtrip for timestamp columns.
  • %in% evaluates RHS in the correct environment.
  • left_join() and other join functions call auto_copy().
  • Only reset expression depth if it has been set before.
  • Require fallback if the result contains duplicate column names when ignoring case.
  • row_number() returns integer.
  • is.na(NaN) is TRUE.
  • summarise(count = n(), count = n()) creates only one column named count.
  • Correctly match NA in %in%.
  • Correct wording in instructions for enabling fallback logging (@TimTaylor, #141).

Features

  • Only allow constant patterns in grepl().
  • Explicitly reject calls with named arguments for now.
  • Reduce memory limit for revdepchecks.

Chore

  • Use equality from rfuns to implement a better version of %in% (#155).
  • Use rfuns for as.integer() (#154).
  • Use built-in rfuns extension to implement equality and inequality operators, improve translation for NA and %in% (#83, #148).
  • Restore state after sync script (#152).
  • pkg_review() (#150).
  • Remove styler dependency (#137, #138).
  • Update patch.
  • Bump duckdb version (#147).
  • Update snapshots.
  • Avoid error from stats collection.
  • New constructive version.

Documentation

Testing

  • Synchronize tests (#153).
  • Test that vec_ptype() does not materialize (#149).
  • Improve telemetry tests.
  • Promote equality checks to expect_identical() to capture differences between doubles and integers.

Uncategorized

  • Same as previous version.
  • Merge branch ‘cran-0.3.2’.

duckplyr 0.3.2 (2024-03-17)

CRAN release: 2024-03-17

Bug fixes

  • Run autoupload in function so that it will be checked by static analysis (#122).

Features

duckplyr 0.3.1 (2024-03-08)

CRAN release: 2024-03-10

Bug fixes

  • Forbid reuse of new columns created in summarise() (#72, #106).
  • summarise() no longer restores subclass.
  • Disambiguate computation of log10() and log().
  • Fix division by zero for positive and negative numbers.

Features

  • New fallback_sitrep() and related functionality for collecting telemetry data (#102, #107, #110, #111, #115). No data is collected by default, only a message is displayed once per session and then every eight hours. Opt in or opt out by setting environment variables.
  • Implement group_by() and other methods to collect fallback information (#94, #104, #105).
  • Set memory limit and temporary directory for duckdb.
  • Implement suppressWarnings() as the identity function.
  • Prefer cli::cli_abort() over stop() or rlang::abort() (#114).
  • Translate .data$a and .env$a.
  • Strict checks for column class, only supporting integer, numeric, logical, Date, POSIXct, and difftime for now.
  • If the environment variable DUCKPLYR_METHODS_OVERWRITE is set to TRUE, loading duckplyr automatically calls methods_overwrite().

Internal

  • Better duckdb tests.
  • Use standalone purrr for dplyr compatibility.

Testing

Documentation

duckplyr 0.3.0 (2023-12-10)

CRAN release: 2023-12-11

Bug fixes

  • grepl(x = NA) gives correct results.
  • Fix auto_copy() for non-data-frame input.
  • Add output order preservation for filters.
  • distinct() now preserves order in corner cases (#77, #78).
  • Consistent computation of log(0) and log(-1) (#75, #76).

Features

  • Only allow constants in mutate() that are actually representable in duckdb (#73).
  • Avoid translating ifelse(), support if_else() (#79).

Documentation

  • Separate and explain the new relational examples (@wibeasley, #84).

Testing

  • Add test that TPC-H queries can be processed.

Chore

duckplyr 0.2.3 (2023-11-08)

CRAN release: 2023-11-08

Performance

  • Join using IS NOT DISTINCT FROM for faster execution (duckdb/duckdb-r#41, #68).

Documentation

duckplyr 0.2.2 (2023-10-16)

CRAN release: 2023-10-16

Bug fixes

  • summarise() keeps "duckplyr_df" class (#63, #64).

  • Fix compatibility with duckdb >= 0.9.1.

Chore

Documentation

  • Small README improvements (@maelle, #34, #57).

  • Fix 301 in README.

duckplyr 0.2.1 (2023-09-16)

CRAN release: 2023-09-17

  • Improve documentation.

  • Work around problem with dplyr_reconstruct() in R 4.3.

  • Rename duckdb_from_file() to df_from_file().

  • Unexport private duckdb_rel_from_df(), rel_from_df(), wrap_df() and wrap_integer().

  • Reexport %>% and tibble().

duckplyr 0.2.0 (2023-09-10)

CRAN release: 2023-09-10

  • Implement relational API for DuckDB.

duckplyr 0.1.0 (2023-07-03)

CRAN release: 2023-07-07

Bug fixes

  • Fix examples.

Chore

  • Add CRAN install instructions.
  • Satisfy R CMD check.
  • Document argument.
  • Error on NOTE.
  • Remove relexpr_window() for now.

Documentation

  • Clean up reference.

Uncategorized

Initial version, exporting: - new_relational() to construct objects of class "relational" - Generics rel_aggregate(), rel_distinct(), rel_filter(), rel_join(), rel_limit(), rel_names(), rel_order(), rel_project(), rel_set_diff(), rel_set_intersect(), rel_set_symdiff(), rel_to_df(), rel_union_all() - new_relexpr() to construct objects of class "relational_relexpr" - Expression builders relexpr_constant(), relexpr_function(), relexpr_reference(), relexpr_set_alias(), relexpr_window()