The goal of adbcpostgresql is to provide a low-level developer-facing interface to the Arrow Database Connectivity (ADBC) PostgreSQL driver.
You can install the released version of adbcpostgresql from CRAN with:
install.packages("adbcpostgresql")
You can install the development version of adbcpostgresql from GitHub with:
# install.packages("pak") pak::pak("apache/arrow-adbc/r/adbcpostgresql")
ADBC drivers for R use a relatively new feature of pkgbuild to enable installation from GitHub via pak. Depending on when you installed pak, you may need to update its internal version of pkgbuild.
install.packages("pkgbuild", pak:::private_lib_dir()) pak::cache_clean()
This is a basic example which shows you how to solve a common problem:
library(adbcdrivermanager) # Use the driver manager to connect to a database uri <- Sys.getenv("ADBC_POSTGRESQL_TEST_URI") db <- adbc_database_init(adbcpostgresql::adbcpostgresql(), uri = uri) con <- adbc_connection_init(db) # Write a table flights <- head(nycflights13::flights, 100) # (timestamp not supported yet) flights$time_hour <- NULL flights |> write_adbc(con, "flights") # Query it con |> read_adbc("SELECT * from flights") |> tibble::as_tibble() #> # A tibble: 100 × 18 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> <int> <int> <int> <int> <int> <dbl> <int> <int> #> 1 2013 1 1 517 515 2 830 819 #> 2 2013 1 1 533 529 4 850 830 #> 3 2013 1 1 542 540 2 923 850 #> 4 2013 1 1 544 545 -1 1004 1022 #> 5 2013 1 1 554 600 -6 812 837 #> 6 2013 1 1 554 558 -4 740 728 #> 7 2013 1 1 555 600 -5 913 854 #> 8 2013 1 1 557 600 -3 709 723 #> 9 2013 1 1 557 600 -3 838 846 #> 10 2013 1 1 558 600 -2 753 745 #> # ℹ 90 more rows #> # ℹ 10 more variables: arr_delay <dbl>, carrier <chr>, flight <int>, #> # tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>, #> # hour <dbl>, minute <dbl>
# Clean up con |> execute_adbc("DROP TABLE flights") adbc_connection_release(con) adbc_database_release(db)