DyfanJones / noctua

Connect R to Athena using paws SDK (DBI Interface)
https://dyfanjones.github.io/noctua/
Other
45 stars 5 forks source link

fix: for dbplyr 2.3.3.9000 + #206

Closed DyfanJones closed 11 months ago

DyfanJones commented 11 months ago

The dev dbplyr 2.3.3.9000 currently fails with the following.

Error (test-dplyr-compute.R:23:3): Check noctua s3 dplyr compute method
Error in `strsplit(name, "\\.")`: non-character argument
Backtrace:
  ▆
1. ├─athena_tbl %>% ... at test-dplyr-compute.R:23:2
2. ├─dplyr::compute(...)
3. └─dbplyr:::compute.tbl_sql(...)
4.   ├─dbplyr::db_compute(...)
5.   └─noctua:::db_compute.AthenaConnection(...)
6.     └─noctua:::athena_query_save(con, sql, table, ...) at noctua/R/dplyr_integration.R:68:2
7.       ├─DBI::SQL(...) at noctua/R/dplyr_integration.R:82:2
8.       ├─base::paste0(...)
9.       ├─base::paste0("\"", unlist(strsplit(name, "\\.")), "\"", collapse = ".")
10.       ├─base::unlist(strsplit(name, "\\."))
11.       └─base::strsplit(name, "\\.")
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✖ | 2       0 | dplyr copy_to                                                                                              
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Error (test-dplyr-copy_to.R:17:3): Check noctua s3 dplyr copy_to method
Error in `(function (classes, fdef, mtable) 
{
  methods <- .findInheritedMethods(classes, fdef, mtable)
  if (length(methods) == 1L) 
    return(methods[[1L]])
  else if (length(methods) == 0L) {
    cnames <- paste0("\"", vapply(classes, as.character, 
                                  ""), "\"", collapse = ", ")
    stop(gettextf("unable to find an inherited method for function %s for signature %s", 
                  sQuote(fdef@generic), sQuote(cnames)), domain = NA)
  }
  else stop("Internal error in finding inherited methods; didn't return a unique method", 
            domain = NA)
})(list(structure("AthenaConnection", package = "noctua"), "dbplyr_table_ident", 
        "data.frame"), new("standardGeneric", .Data = function (conn, 
                                                                name, value, ...) 
          standardGeneric("dbWriteTable"), generic = structure("dbWriteTable", package = "DBI"), 
          package = "DBI", group = list(), valueClass = character(0), 
          signature = c("conn", "name", "value"), default = NULL, skeleton = (function (conn, 
                                                                                        name, value, ...) 
            stop(gettextf("invalid call in method dispatch to '%s' (no default method)", 
                          "dbWriteTable"), domain = NA))(conn, name, value, ...)), 
   <environment>)`: unable to find an inherited method for function ‘dbWriteTable’ for signature ‘"AthenaConnection", "dbplyr_table_ident", "data.frame"’
Backtrace:
  ▆
1. ├─dplyr::copy_to(...) at test-dplyr-copy_to.R:17:2
2. └─dplyr:::copy_to.DBIConnection(...)
3.   ├─dplyr::copy_to(...)
4.   └─dbplyr:::copy_to.src_sql(...)
5.     ├─dbplyr::db_copy_to(...)
6.     └─noctua::db_copy_to.AthenaConnection(...)
7.       └─DBI::dbWriteTable(...) at noctua/R/dplyr_integration.R:168:2
8.         └─methods (local) `<fn>`(`<list>`, `<stndrdGn>`, `<env>`)

Error (test-dplyr-copy_to.R:17:3): Check noctua s3 dplyr copy_to method
<rlib_error_dots_unused/rlib_error_dots/rlang_error/error/condition>
  Error in `db_copy_to(dest$con, name, df, overwrite = overwrite, types = types, 
                       temporary = temporary, unique_indexes = unique_indexes, indexes = indexes, 
                       analyze = analyze, in_transaction = in_transaction, ...)`: Arguments in `...` must be used.
✖ Problematic arguments:
  • s3_location = Sys.getenv("noctua_s3_tbl")
• compress = T
ℹ Did you misspell an argument name?
  Backtrace:
  ▆
1. ├─dplyr::copy_to(...) at test-dplyr-copy_to.R:17:2
2. └─dplyr:::copy_to.DBIConnection(...)
3.   ├─dplyr::copy_to(...)
4.   └─dbplyr:::copy_to.src_sql(...)
5.     ├─dbplyr::db_copy_to(...)
6.     └─rlang (local) `<fn>`()
7.       └─rlang:::check_dots(env, error, action, call)
8.         └─rlang:::action_dots(...)
9.           ├─base (local) try_dots(...)
10.           └─rlang (local) action(...)