R/connection.R

Defines functions get_catalog get_connection.default get_connection.DBIConnection get_connection.dbi.table get_connection.dbi.schema get_connection.dbi.catalog get_connection init_connection

init_connection <- function(conn) {
  if (is.function(conn)) {
    recon_fun <- conn
    conn <- conn()
    attr(conn, "recon") <- recon_fun
  }

  conn
}



get_connection <- function(x) {
  UseMethod("get_connection")
}



#' @export
get_connection.dbi.catalog <- function(x) {
  x
}



#' @export
get_connection.dbi.schema <- function(x) {
  x[["../catalog"]]
}



#' @export
get_connection.dbi.table <- function(x) {
  attr(x, "conn", exact = TRUE)
}



#' @export
get_connection.DBIConnection <- function(x) {
  x
}



#' @export
get_connection.default <- function(x) {
  stop("invalid connection argument - 'conn' is not a 'DBI' connection",
       call. = FALSE)

  invisible()
}



get_catalog <- function(x) {
  if (is_dbi_catalog(x <- get_connection(x))) x else NULL
}

Try the dbi.table package in your browser

Any scripts or data that you put into this service are public.

dbi.table documentation built on June 29, 2025, 1:07 a.m.