Skip to content

lsDS does not work with DSLite #214

@ymarcon

Description

@ymarcon

lsDS assues that the symbols are living in the R Global Environment. In DSLite, this is not the case: the server symbols are in the parent.frame of the function call and R GlobalEnv is the one of the client. As a comparison, see the DSI::datashield.symbols() output.

To reproduce:

library(DSLite)
library(dsBaseClient)

# prepare DSLite server
data("CNSIM1")
dslite.server <- newDSLiteServer(tables=list(CNSIM1=CNSIM1))

builder <- DSI::newDSLoginBuilder()
builder$append(server = "study1",  url = "dslite.server",
               table = "CNSIM1", driver = "DSLiteDriver")
logindata <- builder$build()
conns <- DSI::datashield.login(logins = logindata, assign = TRUE)
ds.ls()
DSI::datashield.symbols(conns)
datashield.logout(conns)

Output:

> ds.ls()
$study1
$study1$environment.searched
[1] "R_GlobalEnv"

$study1$objects.found
[1] "builder"       "CNSIM1"        "conns"         "dslite.server" "logindata"    

> DSI::datashield.symbols(conns)
$study1
[1] "D"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions