Currently, the ClickHouse JDBC driver returns java.util.ArrayList for Tuple types within ClickHouseTupleValue. This can create complications when integrating with java applications that interact with JDBC and expect structured data to be represented as java.sql.Struct.
Returning java.sql.Struct instead of java.util.ArrayList would be more consistent with JDBC standards and simplify integration with tools like Spark.
Below is the DDL used to create the table that demonstrates this issue:
In the attached screenshot, you can see the structure of the ResultSet returned by the JDBC driver when querying the Tuple column. The result is currently represented as a java.util.ArrayList, as shown in the ClickHouseTupleValue object:
Query Executed: SELECT "tupleColumn" FROM tuple_table
Currently, the ClickHouse JDBC driver returns
java.util.ArrayList
forTuple
types withinClickHouseTupleValue
. This can create complications when integrating with java applications that interact with JDBC and expect structured data to be represented asjava.sql.Struct
.Returning
java.sql.Struct
instead ofjava.util.ArrayList
would be more consistent with JDBC standards and simplify integration with tools like Spark.Below is the DDL used to create the table that demonstrates this issue:
In the attached screenshot, you can see the structure of the
ResultSet
returned by the JDBC driver when querying theTuple
column. The result is currently represented as ajava.util.ArrayList
, as shown in theClickHouseTupleValue
object:SELECT "tupleColumn" FROM tuple_table
java.util.ArrayList