-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Trying to make a connection against a quackpy server to get "adbc all the way down" into an R client. See below, using R and having installed packages adbi, adbcflightsql and adbcdrivermanager, but first starting the quackpy server with docker run -ti --rm -p 8123:8123 -p 8815:8815 ghcr.io/quackscience/quackpy:latest:
con <-
adbi::dbConnect(adbi::adbi("adbcflightsql"),
uri = "grpc://127.0.0.1:8815" #, username = "", password =""
)
print(con)Error reported on the client side:
Error in `adbcdrivermanager::adbc_connection_get_info()`:
! IO: [FlightSQL] connection error: desc = "error reading server preface: read tcp 127.0.0.1:44700->127.0.0.1:8815: read: connection reset by peer" (Unavailable; GetInfo(GetSqlInfo))
Hide Traceback
▆
1. ├─methods (local) `<stndrdGn>`(`<AdbCnnct>`)
2. └─adbi (local) `<stndrdGn>`(`<AdbCnnct>`)
3. ├─nanoarrow::convert_array_stream(adbcdrivermanager::adbc_connection_get_info(object@connection))
4. │ └─base::stopifnot(inherits(array_stream, "nanoarrow_array_stream"))
5. └─adbcdrivermanager::adbc_connection_get_info(object@connection)
6. └─adbcdrivermanager:::stop_for_error(status, error)
Possibly related lines in the log from the quackpy server side:
172.17.0.1 - - [11/Feb/2025 09:52:46] code 505, message Invalid HTTP version (2.0)
172.17.0.1 - - [11/Feb/2025 09:52:46] "PRI * HTTP/2.0" HTTPStatus.HTTP_VERSION_NOT_SUPPORTED -
This might well be operator error, but the equivalent way to connect to the Voltron "sqlflite" server works (just different uri). So I was guessing that maybe quackpy should support such a way to set up the connection?
Wondering also if there is an doc of how to do this in R already and specifically how to send credentials (in a conncetion against the sqlflite server these credentails are provided not in the connection uri but as separate parameters for username and password when setting up the connection).