diff --git a/DESCRIPTION b/DESCRIPTION index 2b02b0c7..e4a397fd 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: DatabaseConnector Type: Package Title: Connecting to Various Database Platforms -Version: 6.3.0 +Version: 6.3.1 Date: 2023-11-08 Authors@R: c( person("Martijn", "Schuemie", email = "schuemie@ohdsi.org", role = c("aut", "cre")), diff --git a/NEWS.md b/NEWS.md index d84e6c6b..c10ccc61 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,11 @@ +DatabaseConnector 6.3.1 +======================= + +Bugfixes: + +1. Fixed `dbFetch()` for DBI drivers, no longer ignoring `n` argument. + + DatabaseConnector 6.3.0 ======================= diff --git a/R/DBI.R b/R/DBI.R index 6cfbfbb2..669b8a0a 100644 --- a/R/DBI.R +++ b/R/DBI.R @@ -376,8 +376,8 @@ setMethod("dbFetch", "DatabaseConnectorJdbcResult", function(res, n = -1, ...) { #' @inherit DBI::dbFetch title description params details references return seealso #' @export -setMethod("dbFetch", "DatabaseConnectorDbiResult", function(res, ...) { - columns <- DBI::dbFetch(res@resultSet, ...) +setMethod("dbFetch", "DatabaseConnectorDbiResult", function(res, n = -1, ...) { + columns <- DBI::dbFetch(res@resultSet, n, ...) columns <- convertFields(res@dbms, columns) columns <- dbFetchIntegerToNumeric(columns) colnames(columns) <- tolower(colnames(columns)) diff --git a/tests/testthat/test-fetchResults.R b/tests/testthat/test-fetchResults.R index 6c311226..f824fbb0 100644 --- a/tests/testthat/test-fetchResults.R +++ b/tests/testthat/test-fetchResults.R @@ -39,6 +39,15 @@ for (testServer in testServers) { ) expect_gt(dplyr::collect(andromeda$test2)$rowCount[1], 1) Andromeda::close(andromeda) + + # dbFetch only fetches n rows + sql <- "SELECT * FROM @cdm_database_schema.vocabulary;" + sql <- SqlRender::render(sql, + cdm_database_schema = cdmDatabaseSchema) + resultSet <- dbSendQuery(connection, sql) + data <- dbFetch(resultSet, n = 1) + dbClearResult(resultSet) + expect_equal(nrow(data), 1) }) }