@@ -73,6 +73,48 @@ duckdb_shutdown <- function(drv) {
7373 invisible (TRUE )
7474}
7575
76+ # ' @description
77+ # ' Return an [adbcdrivermanager::adbc_driver()] for use with Arrow Database
78+ # ' Connectivity via the adbcdrivermanager package.
79+ # '
80+ # ' @return An object of class "adbc_driver"
81+ # ' @rdname duckdb
82+ # ' @export
83+ # ' @examplesIf requireNamespace("adbcdrivermanager", quietly = TRUE)
84+ # ' library(adbcdrivermanager)
85+ # ' with_adbc(db <- adbc_database_init(duckdb_adbc()), {
86+ # ' as.data.frame(read_adbc(db, "SELECT 1 as one;"))
87+ # ' })
88+ duckdb_adbc <- function () {
89+ init_func <- structure(rapi_adbc_init_func(), class = " adbc_driver_init_func" )
90+ adbcdrivermanager :: adbc_driver(init_func , subclass = " duckdb_driver_adbc" )
91+ }
92+
93+ # Registered in zzz.R
94+ adbc_database_init.duckdb_driver_adbc <- function (driver , ... ) {
95+ adbcdrivermanager :: adbc_database_init_default(
96+ driver ,
97+ list (... ),
98+ subclass = " duckdb_database_adbc"
99+ )
100+ }
101+
102+ adbc_connection_init.duckdb_database_adbc <- function (database , ... ) {
103+ adbcdrivermanager :: adbc_connection_init_default(
104+ database ,
105+ list (... ),
106+ subclass = " duckdb_connection_adbc"
107+ )
108+ }
109+
110+ adbc_statement_init.duckdb_connection_adbc <- function (connection , ... ) {
111+ adbcdrivermanager :: adbc_statement_init_default(
112+ connection ,
113+ list (... ),
114+ subclass = " duckdb_statement_adbc"
115+ )
116+ }
117+
76118is_installed <- function (pkg ) {
77119 as.logical(requireNamespace(pkg , quietly = TRUE )) == TRUE
78120}
0 commit comments