Nothing
test_that("drop table works in opposition to insert table", {
skip_if_not("duckdb" %in% dbToTest)
skip_if_not_installed("duckdb")
con <- DBI::dbConnect(duckdb::duckdb(dbdir = eunomiaDir()))
writePrefix <- 'study01_'
writeSchema <- c(schema = "main", prefix = writePrefix)
cdm <- cdmFromCon(con = con,
cdmSchema = "main",
writeSchema = writeSchema,
cdmName = "myDuckdbDatabase")
dropSourceTable(cdm, dplyr::everything()) # should not be needed.
expect_equal(listTables(con, schema = writeSchema), character(0L))
expect_equal(length(listTables(con, schema = "main")), 35)
name <- paste0(c(sample(letters, 5, replace = TRUE), "_test_table"), collapse = "")
table <- dplyr::arrange(datasets::cars, dplyr::across(c("speed","dist")))
cdm <- insertTable(cdm = cdm, name = name, table = table)
expect_equal(listTables(con, schema = writeSchema), name)
expect_true(name %in% names(cdm))
cdm[[name]] <- NULL
# attributes(cdm)
# src <- attr(cdm, "cdm_source")
# sloop::s3_dispatch( dropTable(cdm, name = name))
dropSourceTable(cdm, name = name)
expect_equal(listTables(con, schema = writeSchema), character(0L))
DBI::dbDisconnect(con)
})
test_that("dropping all tables with write_prefix works as exepected", {
skip_if_not("duckdb" %in% dbToTest)
skip_if_not_installed("duckdb")
con <- DBI::dbConnect(duckdb::duckdb(dbdir = eunomiaDir()))
writePrefix <- "study01_"
writeSchema <- c(schema = "main", prefix = writePrefix)
cdm <- cdmFromCon(
con = con,
cdmSchema = "main",
writeSchema = writeSchema,
cdmName = "myDuckdbDatabase"
)
expect_true(length(listTables(con, writeSchema)) == 0)
cdm <- generateConceptCohortSet(cdm = cdm, conceptSet = list("a" = 4112343), name = "my_new_table_1")
cdm <- generateConceptCohortSet(cdm = cdm, conceptSet = list("b" = 28060), name = "my_new_table_2")
# use write schema instead of "main".
# The prefix is hidden because it is treated as part of the schema.
# When we ask for tables in the "write_schema" we only get tables that begin with the prefix
expect_true(length(listTables(con, writeSchema)) > 0)
# this is not the way to drop all prefixed tables. use starts_with to drop a subset of prefixed tables.
expect_no_error(
dropSourceTable(cdm, dplyr::starts_with(writePrefix))
)
DBI::dbWriteTable(con, "cars", cars)
# dropping everything just drops stuff in prefixed in the write schema
expect_no_error(
dropSourceTable(cdm, dplyr::everything())
)
expect_true(length(listTables(con, writeSchema)) == 0)
expect_true("cars" %in% listTables(con, "main"))
expect_true(length(listTables(con, "main")) > 0) # cdm tables are still there
# check that insertTable prefixes table names
cdm <- insertTable(cdm, "cars2", cars)
expect_true("study01_cars2" %in% DBI::dbListTables(con))
# DBI::dbListTables gives us full names including the prefix while
# CDMConnector::listTables strips off the prefix since it is treated as a sub-schema.
DBI::dbDisconnect(con)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.