R Under development (unstable) (2023-08-15 r84956 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(testthat) > library(DrugExposureDiagnostics) > > test_check("DrugExposureDiagnostics") trying URL 'https://example-data.ohdsi.dev/GiBleed.zip' Content type 'application/zip' length 6754786 bytes (6.4 MB) ================================================== downloaded 6.4 MB Creating CDM database D:\temp\RtmpoRSpui/GiBleed_5.3.zip Progress: getting descendant concepts of ingredient (1125315) used in database Progress: getting descendant concepts of ingredient Progress: adding drug strength info Progress: limiting to concepts in the db Progress: adding concept names Overall time taken: 0 minutes and 1 seconds Time taken: 0 minutes and 1 seconds Progress: getting drug strength for ingredient Time taken: 0 minutes and 0 seconds Progress: getting drug records for ingredient Time taken: 0 minutes and 0 seconds Progress: get concepts used Time taken: 0 minutes and 0 seconds Progress: get ingredient overview Time taken: 0 minutes and 0 seconds Progress: sampling drug records population after earliestStartDate smaller than sample, ignoring date for sampling Time taken: 0 minutes and 1 seconds Progress: check drugsMissing Time taken: 0 minutes and 2 seconds Progress: check ExposureDuration Time taken: 0 minutes and 0 seconds Progress: check drugTypes Time taken: 0 minutes and 0 seconds Progress: check drugRoutes Time taken: 0 minutes and 0 seconds Progress: check drugSourceConcepts Time taken: 0 minutes and 0 seconds Progress: check drugDaysSupply Time taken: 0 minutes and 0 seconds Progress: check drugVerbatimEndDate Time taken: 0 minutes and 0 seconds Progress: check drugDose Time taken: 0 minutes and 0 seconds Progress: check drugSig Time taken: 0 minutes and 0 seconds Progress: check drugQuantity Time taken: 0 minutes and 0 seconds Progress: create histograms Time taken: 0 minutes and 0 seconds Finished Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` population after earliestStartDate smaller than sample, ignoring date for sampling Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` Joining with `by = join_by(ingredient_concept_id)` Time taken: 0 minutes and 0 seconds testMessage [ FAIL 25 | WARN 21 | SKIP 1 | PASS 180 ] ══ Skipped tests (1) ═══════════════════════════════════════════════════════════ • Sys.getenv("TESTDB_USER") == "" is TRUE (1): 'test-SyntheaSqlServer.R:5:3' ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-CheckDrugSig.R:15:3'): checkDrugSig overall ──────────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-CheckDrugSig.R:15:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-CheckDrugSig.R:11:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-CheckDrugSig.R:25:3'): checkDrugSig byConcept ────────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-CheckDrugSig.R:25:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-CheckDrugSig.R:11:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-CheckVerbatimEndDate.R:22:3'): checkVerbatimEndDate overall ──── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-CheckVerbatimEndDate.R:22:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-CheckVerbatimEndDate.R:18:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-CheckVerbatimEndDate.R:34:3'): checkVerbatimEndDate byConcept ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-CheckVerbatimEndDate.R:34:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-CheckVerbatimEndDate.R:18:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-DrugRecordChecks.R:42:3'): summariseDrugExposureDuration test ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-DrugRecordChecks.R:42:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-DrugRecordChecks.R:37:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-GetDrugMissings.R:41:3'): getDrugMissings overall ────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-GetDrugMissings.R:41:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-GetDrugMissings.R:37:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-GetDrugMissings.R:55:3'): getDrugMissings byConcept ──────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getTestData() at test-GetDrugMissings.R:55:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-GetDrugMissings.R:37:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-IngredientOverview.R:34:3'): getIngredientOverview ───────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-IngredientOverview.R:34:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(...) at test-IngredientOverview.R:28:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-IngredientOverview.R:53:3'): getIngredientOverview error cases ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-IngredientOverview.R:53:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(...) at test-IngredientOverview.R:28:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-IngredientOverview.R:63:3'): getIngredientsPresence ──────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-IngredientOverview.R:63:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(...) at test-IngredientOverview.R:28:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-IngredientOverview.R:79:3'): getIngredientsPresence error cases ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-IngredientOverview.R:79:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(...) at test-IngredientOverview.R:28:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-MockDrugExposureData.R:2:3'): check working example with defaults ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure() at test-MockDrugExposureData.R:2:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-MockDrugExposureData.R:112:3'): check working example with drug_strength ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(drug_strength = drug_strength) at test-MockDrugExposureData.R:112:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-MockDrugExposureData.R:142:3'): check working example with drug drug_exposure ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-MockDrugExposureData.R:142:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-MockDrugExposureData.R:163:3'): check working example with drug_exposure options ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(...) at test-MockDrugExposureData.R:163:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-MockDrugExposureData.R:174:3'): check working example with drug_strength options ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(...) at test-MockDrugExposureData.R:174:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-SummariseQuantity.R:20:3'): check summary calculation ────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-SummariseQuantity.R:20:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-checkDaysSupply.R:23:3'): check if it can detect missing ─────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-checkDaysSupply.R:23:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-checkDaysSupply.R:68:3'): check if summarise days_supply works ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drug_exposure) at test-checkDaysSupply.R:68:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) ── Error ('test-checkDrugDose.R:25:3'): checkDrugDose overall ────────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-checkDrugDose.R:25:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure() at test-checkDrugDose.R:2:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-checkDrugDose.R:54:3'): checkDrugDose by Concept ─────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-checkDrugDose.R:54:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure() at test-checkDrugDose.R:2:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-getHistogram.R:21:3'): test histogram plotting ───────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-getHistogram.R:21:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drugExposure) at test-getHistogram.R:16:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-getHistogram.R:31:3'): test save load fucntionality for histograms ── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-getHistogram.R:31:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drugExposure) at test-getHistogram.R:16:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-getHistogram.R:39:3'): test NA input ─────────────────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics (local) getInputDb() at test-getHistogram.R:39:2 2. │ └─DrugExposureDiagnostics:::mockDrugExposure(drug_exposure = drugExposure) at test-getHistogram.R:16:2 3. │ ├─CDMConnector::cdm_from_con(db) %>% ... 4. │ └─CDMConnector::cdm_from_con(db) 5. │ └─rlang::abort("cdm_name must be supplied!") 6. ├─CDMConnector::cdm_select_tbl(...) 7. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 8. └─rlang::set_names(., names(cdm)) ── Error ('test-utils.R:57:3'): checkIsIngredient ────────────────────────────── Error in `CDMConnector::cdm_from_con(db)`: cdm_name must be supplied! Backtrace: ▆ 1. ├─DrugExposureDiagnostics:::mockDrugExposure() at test-utils.R:57:2 2. │ ├─CDMConnector::cdm_from_con(db) %>% ... 3. │ └─CDMConnector::cdm_from_con(db) 4. │ └─rlang::abort("cdm_name must be supplied!") 5. ├─CDMConnector::cdm_select_tbl(...) 6. │ └─names(cdm) %>% rlang::set_names(names(cdm)) 7. └─rlang::set_names(., names(cdm)) [ FAIL 25 | WARN 21 | SKIP 1 | PASS 180 ] Error: Test failures In addition: There were 40 warnings (use warnings() to see them) Execution halted Warning messages: 1: Connection is garbage-collected, use dbDisconnect() to avoid this. 2: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 3: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 4: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 5: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 6: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 7: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 8: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 9: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this. 10: Database is garbage-collected, use dbDisconnect(con, shutdown=TRUE) or duckdb::duckdb_shutdown(drv) to avoid this.