I’m trying to connect with Dremio using Elixir’s Adbc (GitHub - elixir-explorer/adbc at v0.3.1) library which wraps the Adbc Flight Driver (you’ll have to google it because I’m only allowed two links. )
It’s accessing a corporate Dremio instance managed by the company I work for. It uses a username/password for authentication. Authentication is successful using Python examples but I’m tasked with getting it to work in Elixir.
I have it set up according to the Adbc docs (Adbc — adbc v0.3.1).
children = [
{Adbc.Database,
driver: :sqlite,
uri: "grpc://superfunmegacorp.com:32010",
username: "johndoe",
password: "nevergonnagiveyouup",
process_options: [name: MyApp.DB]},
{Adbc.Connection,
database: MyApp.DB,
process_options: [name: MyApp.Conn]}
]
Supervisor.start_link(children, strategy: :one_for_one)
It appears set up correctly until I try to query it like:
query = "SELECT 1"
{:ok, _} = Adbc.Connection.query(MyApp.Conn, query)
The error I’m getting is:
** (MatchError) no match of right hand side value: {:error, %ArgumentError{message: "[FlightSQL] error reading from server: EOF (Unavailable; DoGet: endpoint 0: [uri:"grpc+tcp://0.0.0.0:32010"])"}}
(arrow_ex 0.1.0) lib/arrow_ex.ex:145: ArrowEx.doit/0
iex:1: (file)
It’s quite mysterious to me why it would be replacing the domain name with 0.0.0.0
. Any ideas how to chase this down?