ianmcook/implyr

compatibility with box::use

tyner opened this issue · 1 comments

tyner commented

I am not entirely sure whether this is an issue with box versus implyr, but thought I might start here given the similarity with issue #9. I am using implyr version 0.4.0, odbc version 1.3.4, DBI version 1.1.3, and R version 4.1.3 on Windows 10 x64.

Example to demonstrate:

box::use(implyr[src_impala], DBI[dbGetQuery])
options(warn=1)
impala <- src_impala(drv = odbc::odbc(),
                     dsn = "my_dsn",
                     database = "default",
                     bigint = "character",
                     auto_disconnect = FALSE
                     )
                        
ret <- dbGetQuery(impala, "show databases") 

the error is:

Error in setMethod("dbSendQuery", c("impala_connection", "character"),  : 
  no existing definition for function ‘dbSendQuery’

Apologies if I'm barking up the wrong tree on this one.

tyner commented

FWIW, if I do it this way, it works:

box::use(implyr[src_impala, dbGetQuery],
         DBI[dbSendQuery, dbExecute])

but not if I wrap that block inside a local; i.e., this still fails:

local({
box::use(implyr[src_impala, dbGetQuery],
         DBI[dbSendQuery, dbExecute])
options(warn=1)
impala <- src_impala(drv = odbc::odbc(),
                     dsn = "my_dsn",
                     database = "default",
                     bigint = "character",
                     auto_disconnect = FALSE
                     )
                        
ret <- dbGetQuery(impala, "show databases")                        
})