Skip to content

Commit

Permalink
Merge branch 'duckdblabs-main' into fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
krlmlr committed Sep 4, 2023
2 parents 9e15a4b + 5a21dd2 commit 7b07e93
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 22 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Imports:
collections,
DBI,
dplyr,
duckdb (>= 0.8.1),
duckdb (>= 0.8.1-3),
glue,
lifecycle,
purrr,
Expand Down
33 changes: 13 additions & 20 deletions R/relational-duckdb.R
Original file line number Diff line number Diff line change
Expand Up @@ -77,26 +77,19 @@ duckdb_rel_from_df <- function(df) {
# FIXME: make generic
stopifnot(is.data.frame(df))

tryCatch(
{
rel <- duckdb:::rel_from_altrep_df(df)
# Once we're here, we know it's an ALTREP data frame
# We don't do anything if it's already materialized

if (!duckdb:::df_is_materialized(df)) {
rel_names <- duckdb:::rapi_rel_names(rel)
if (!identical(rel_names, names(df))) {
# This can happen when column names change for an existing relational data frame
exprs <- nexprs_from_loc(rel_names, set_names(seq_along(df), names(df)))
rel <- rel_project.duckdb_relation(rel, exprs)
}
return(rel)
}
},
error = function(e) {}
)

# FIXME: Move to duckdb:::rel_from_df()
rel <- duckdb:::rel_from_altrep_df(df, strict = FALSE, allow_materialized = FALSE)
if (!is.null(rel)) {
# Once we're here, we know it's an ALTREP data frame
# We don't get here if it's already materialized

rel_names <- duckdb:::rapi_rel_names(rel)
if (!identical(rel_names, names(df))) {
# This can happen when column names change for an existing relational data frame
exprs <- nexprs_from_loc(rel_names, set_names(seq_along(df), names(df)))
rel <- rel_project.duckdb_relation(rel, exprs)
}
return(rel)
}

if (!is_duckplyr_df(df)) {
df <- as_duckplyr_df(df)
Expand Down
2 changes: 1 addition & 1 deletion tools/06-patch-duckdb.R
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ source("tools/00-funs.R", echo = TRUE)
brio::read_file("tests/testthat/test-rel_api.R") %>%
str_replace_all("duckdb:::?", "") %>%
str_replace_all("DBI::", "") %>%
brio::write_file("../duckdb/tools/rpkg/tests/testthat/test-rel_api.R")
brio::write_file("../duckdb-r/tests/testthat/test-rel_api.R")

0 comments on commit 7b07e93

Please sign in to comment.