Skip to content

JDBC driver does not support compressed IPC streams (ZSTD, LZ4) [FlightSQL] #926

@aarshivv

Description

@aarshivv

Describe the bug, including details regarding any error messages, version, and platform.

Component: Flight SQL JDBC Driver
Version: 18.3.0

The flight-sql-jdbc-driver shaded JAR does not include compression support, causing connection failures when the Flight SQL server sends compressed IPC streams using ZSTD or LZ4 compression.

Expected Behavior

The JDBC driver should be able to handle compressed IPC streams from Flight SQL servers, similar to how the direct Flight SQL client (flight-sql artifact) handles them.

Actual Behavior

Connection fails with one of these errors depending on compression type used by server:

ZSTD compression:

java.lang.IllegalArgumentException: Please add arrow-compression module to use CommonsCompressionFactory for ZSTD
at org.apache.arrow.driver.jdbc.shaded.org.apache.arrow.vector.compression.NoCompressionCodec$Factory.createCodec(NoCompressionCodec.java:63)

LZ4 compression:

Arrow error: Invalid argument error: lz4 IPC compression requires the lz4 feature

Steps to Reproduce

  1. Set up a Flight SQL server that uses compression (ZSTD or LZ4)
  2. Try to connect using the JDBC driver:
    String url = "jdbc:arrow-flight-sql://localhost:5127?useEncryption=false";
    Connection conn = DriverManager.getConnection(url);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM table");
    // Fails with compression error

Workaround

Currently, either:

  1. Disable compression on the server side, OR
  2. Use the direct Flight SQL client API (flight-sql and flight-core artifacts) instead of JDBC

Additional Context

  • Direct Flight SQL client works fine with compression
  • This affects any Flight SQL server that enables compression by default
  • JDBC drivers should be able to handle all protocol features transparently

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions