julianhyde / sqlline

Shell for issuing SQL to relational databases via JDBC
BSD 3-Clause "New" or "Revised" License
610 stars 145 forks source link

Include FlightSQL by default #476

Open avantgardnerio opened 1 year ago

avantgardnerio commented 1 year ago

FlightSQL is an exciting new protocol that promises to solve the combinatorial problem of having each tool (i.e. sqlline) support drivers from each database (i.e. postgres) by establishing a common wire protocol to communicate between them.

As a user of sqlline, it would be helpful to include the FlightSQL driver "out of the box", so that I can connect to FlightSQL databases like dremio & ballista.

snuyanzin commented 1 year ago

sqlline supports SPI if Flight SQL implements then just add a driver to classpath (may be with some required deps if needed) should be enough. Or did I miss anything?

avantgardnerio commented 1 year ago

Hi sorry for the delayed response... I've been swamped. Maybe backing up for context would be better: my overarching goal is to make these docs as easy as possible: https://github.com/apache/arrow-ballista/blob/master/docs/source/user-guide/flightsql.md#use-the-driver-in-your-favorite-data-tool

I thought that sqlline shipped with some default drivers, but I see now that is not the case. I was going to suggest adding artifact fetching to sqlline if it wasn't present, but I see your docs refer to coursier for that, so I'm guessing that has been deemed "out of scope" for sqlline itself?

I think perhaps the easiest way to resolve this is to add sqlline (and the flight-sql-jdbc-driver) to our docker uber-image, and instruct users to run sqlline through that. Does that sound like a reasonable approach to you?