You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by Andrew Lamb <al...@influxdata.com> on 2023/02/01 16:16:34 UTC

[FlightSQL] servers / client reference implementations supporting parameterized statements

Hi,

Does anyone know of FlightSQL clients or servers that support parameterized
statements (e.g. include a placehold like `select * from cpu where time >
?`) other than [1]?

Several projects are working on implementing FlightSQL in Rust (for example
Ballista and InfluxDB IOx). Since the key feature of FlightSQL is
interoperability, we are very interested in testing against other
implementations, rather than just implementing the spec.

We have been using the JDBC driver as this reference implementation so far
but recently (re)discovered that parameterized statement support is still a
WIP[2]. Thus we can not yet use JDBC as the reference implementation for
parameterized features and thus are looking for others.

Thanks,
Andrew

[1]:
https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
[2]: https://github.com/apache/arrow/issues/33475

Re: [FlightSQL] servers / client reference implementations supporting parameterized statements

Posted by Andrew Lamb <al...@influxdata.com>.
Thank you -- this is super helpful

Andrew

On Wed, Feb 1, 2023 at 12:47 PM Matt Topol <zo...@gmail.com> wrote:

> To this point, the Go flightsql sqlite server example is used to test the
> Parameter Support for the ADBC flightsql driver:
>  - CI:
>
> https://github.com/apache/arrow-adbc/blob/main/.github/workflows/native-unix.yml#L293
>  - Dockerfile to run SQLite flightsql server:
>
> https://github.com/apache/arrow-adbc/blob/main/ci/docker/golang-flightsql-sqlite.dockerfile
>
> On Wed, Feb 1, 2023 at 12:02 PM David Li <li...@apache.org> wrote:
>
> > The ADBC C++ Flight SQL driver was probably the most complete Flight SQL
> > client, but it didn't make it through review:
> > https://github.com/apache/arrow/pull/14082
> >
> > The ADBC Go Flight SQL driver supports parameters:
> > https://github.com/apache/arrow-adbc/tree/main/go/adbc/driver/flightsql
> >
> > So does the ADBC Java Flight SQL driver:
> >
> https://github.com/apache/arrow-adbc/tree/main/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql
> >
> > The example servers in the C++, Go, and Java source trees all support
> > parameters to varying degrees:
> >
> > -
> >
> https://github.com/apache/arrow/tree/master/cpp/src/arrow/flight/sql/example
> > -
> >
> https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
> > -
> >
> https://github.com/apache/arrow/blob/master/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java
> >
> > On Wed, Feb 1, 2023, at 11:16, Andrew Lamb wrote:
> > > Hi,
> > >
> > > Does anyone know of FlightSQL clients or servers that support
> > parameterized
> > > statements (e.g. include a placehold like `select * from cpu where
> time >
> > > ?`) other than [1]?
> > >
> > > Several projects are working on implementing FlightSQL in Rust (for
> > example
> > > Ballista and InfluxDB IOx). Since the key feature of FlightSQL is
> > > interoperability, we are very interested in testing against other
> > > implementations, rather than just implementing the spec.
> > >
> > > We have been using the JDBC driver as this reference implementation so
> > far
> > > but recently (re)discovered that parameterized statement support is
> > still a
> > > WIP[2]. Thus we can not yet use JDBC as the reference implementation
> for
> > > parameterized features and thus are looking for others.
> > >
> > > Thanks,
> > > Andrew
> > >
> > > [1]:
> > >
> >
> https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
> > > [2]: https://github.com/apache/arrow/issues/33475
> >
>

Re: [FlightSQL] servers / client reference implementations supporting parameterized statements

Posted by Matt Topol <zo...@gmail.com>.
To this point, the Go flightsql sqlite server example is used to test the
Parameter Support for the ADBC flightsql driver:
 - CI:
https://github.com/apache/arrow-adbc/blob/main/.github/workflows/native-unix.yml#L293
 - Dockerfile to run SQLite flightsql server:
https://github.com/apache/arrow-adbc/blob/main/ci/docker/golang-flightsql-sqlite.dockerfile

On Wed, Feb 1, 2023 at 12:02 PM David Li <li...@apache.org> wrote:

> The ADBC C++ Flight SQL driver was probably the most complete Flight SQL
> client, but it didn't make it through review:
> https://github.com/apache/arrow/pull/14082
>
> The ADBC Go Flight SQL driver supports parameters:
> https://github.com/apache/arrow-adbc/tree/main/go/adbc/driver/flightsql
>
> So does the ADBC Java Flight SQL driver:
> https://github.com/apache/arrow-adbc/tree/main/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql
>
> The example servers in the C++, Go, and Java source trees all support
> parameters to varying degrees:
>
> -
> https://github.com/apache/arrow/tree/master/cpp/src/arrow/flight/sql/example
> -
> https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
> -
> https://github.com/apache/arrow/blob/master/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java
>
> On Wed, Feb 1, 2023, at 11:16, Andrew Lamb wrote:
> > Hi,
> >
> > Does anyone know of FlightSQL clients or servers that support
> parameterized
> > statements (e.g. include a placehold like `select * from cpu where time >
> > ?`) other than [1]?
> >
> > Several projects are working on implementing FlightSQL in Rust (for
> example
> > Ballista and InfluxDB IOx). Since the key feature of FlightSQL is
> > interoperability, we are very interested in testing against other
> > implementations, rather than just implementing the spec.
> >
> > We have been using the JDBC driver as this reference implementation so
> far
> > but recently (re)discovered that parameterized statement support is
> still a
> > WIP[2]. Thus we can not yet use JDBC as the reference implementation for
> > parameterized features and thus are looking for others.
> >
> > Thanks,
> > Andrew
> >
> > [1]:
> >
> https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
> > [2]: https://github.com/apache/arrow/issues/33475
>

Re: [FlightSQL] servers / client reference implementations supporting parameterized statements

Posted by David Li <li...@apache.org>.
The ADBC C++ Flight SQL driver was probably the most complete Flight SQL client, but it didn't make it through review: https://github.com/apache/arrow/pull/14082

The ADBC Go Flight SQL driver supports parameters: https://github.com/apache/arrow-adbc/tree/main/go/adbc/driver/flightsql

So does the ADBC Java Flight SQL driver: https://github.com/apache/arrow-adbc/tree/main/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql

The example servers in the C++, Go, and Java source trees all support parameters to varying degrees:

- https://github.com/apache/arrow/tree/master/cpp/src/arrow/flight/sql/example
- https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
- https://github.com/apache/arrow/blob/master/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java

On Wed, Feb 1, 2023, at 11:16, Andrew Lamb wrote:
> Hi,
>
> Does anyone know of FlightSQL clients or servers that support parameterized
> statements (e.g. include a placehold like `select * from cpu where time >
> ?`) other than [1]?
>
> Several projects are working on implementing FlightSQL in Rust (for example
> Ballista and InfluxDB IOx). Since the key feature of FlightSQL is
> interoperability, we are very interested in testing against other
> implementations, rather than just implementing the spec.
>
> We have been using the JDBC driver as this reference implementation so far
> but recently (re)discovered that parameterized statement support is still a
> WIP[2]. Thus we can not yet use JDBC as the reference implementation for
> parameterized features and thus are looking for others.
>
> Thanks,
> Andrew
>
> [1]:
> https://github.com/apache/arrow/tree/master/go/arrow/flight/flightsql/example
> [2]: https://github.com/apache/arrow/issues/33475