Отключение соединения src_tbls в dplyr

Есть ли способ принудительно отключить объект src_tbls в dplyr, подобный RPostgreSQL::dbDisconnect?

См. например:

> src_temp <- src_postgres(dbname = "temp", host = "127.0.0.1", port = 5432, user = "x", password = "y")
Error in postgresqlNewConnection(drv, ...) : 
  RS-DBI driver: (cannot allocate a new connection -- maximum of 16 connections already opened)

В качестве побочного примечания он автоматически отключается через несколько секунд:

Auto-disconnecting postgres connection (3734, 26)

после чего вы можете снова запустить команду src_postgres.

Ответ 1

Вы можете сделать:

RPostgreSQL::dbDisconnect(src_temp$con)

чтобы отключить соединение.

То, что вызвало сборку мусора из этой функции в dplyr (через исходный файл dbi-s3.r):

# Creates an environment that disconnects the database when it's
# garbage collected
db_disconnector <- function(con, name, quiet = FALSE) {
  reg.finalizer(environment(), function(...) {
    if (!quiet) {
      message("Auto-disconnecting ", name, " connection ",
        "(", paste([email protected], collapse = ", "), ")")
    }
    dbDisconnect(con)
  })
  environment()
}