Detect functions from the duckplyr package (#246).
Avoid failures if artifact is missing.
Store SHA as artifact.
Move towards external status updates.
Tweak status workflow.
Use token.
Add external workflow to update commit statuses.
Avoid manually installing package for pkgdown (#245).
Fix fledge (#243).
Use proper remote repo (#241).
Add permissions to fledge workflow (#238).
Fix tests without suggested packages (#236).
Add permissions to fledge workflow (#235).
Add permissions to fledge workflow (#234).
Add input to fledge workflow (#233).
Use proper token for fledge (#232).
Fix fledge workflow (#231).
Bump version via PR (#230).
Sync with duckdb.
df_from_file()
and related functions support multiple files (#194, #195), show a clear error message for non-string path
arguments (#182), and create a tibble by default (#177).as_duckplyr_tibble()
to convert a data frame to a duckplyr tibble (#177).?df_from_file
shows how to read multiple files (#181, #186) and how to specify CSV column types (#140, #189), and is shown correctly in reference index (#173, #190).as.integer()
, NA
and %in%
(#83, #154, #148, #155, #159, #160).library(duckplyr)
calls methods_overwrite()
(#164).grepl()
.intersect()
, setdiff()
, symdiff()
, union()
, and union_all()
(#169).NA
and those used in an expression (#157).head(-1)
forwards to the default implementation (#131, #156).left_join()
and other join functions call auto_copy()
.row_number()
returns integer.is.na(NaN)
is TRUE
.summarise(count = n(), count = n())
creates only one column named count
.?df_from_file
(@andreranza, #133, #134).vec_ptype()
does not materialize (#149).expect_identical()
to capture differences between doubles and integers.df_to_parquet()
to write to Parquet, new convenience functions df_from_csv()
, duckdb_df_from_csv()
, df_from_parquet()
and duckdb_df_from_parquet()
(#87, #89, #96, #128).summarise()
(#72, #106).summarise()
no longer restores subclass.log10()
and log()
.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.group_by()
and other methods to collect fallback information (#94, #104, #105).suppressWarnings()
as the identity function.cli::cli_abort()
over stop()
or rlang::abort()
(#114)..data$a
and .env$a
.integer
, numeric
, logical
, Date
, POSIXct
, and difftime
for now.DUCKPLYR_METHODS_OVERWRITE
is set to TRUE
, loading duckplyr automatically calls methods_overwrite()
.log()
and log10()
.methods_overwrite()
and methods_restore()
show a message.grepl(x = NA)
gives correct results.auto_copy()
for non-data-frame input.distinct()
now preserves order in corner cases (#77, #78).log(0)
and log(-1)
(#75, #76).mutate()
that are actually representable in duckdb (#73).ifelse()
, support if_else()
(#79).dplyr_reconstruct()
method (#48).meta_replay()
.arrange()
in case of ties.slice_sample()
, not sample_n()
or sample_frac()
(#74).IS NOT DISTINCT FROM
for faster execution (duckdb/duckdb-r#41, #68).Skip tests that give different output on dev tidyselect.
Import utils::globalVariables()
.
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()
.
R CMD check
.relexpr_window()
for now.Initial version, exporting:
new_relational()
to construct objects of class "relational"
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"
relexpr_constant()
, relexpr_function()
, relexpr_reference()
, relexpr_set_alias()
, relexpr_window()