ClickHouse: Upgrade JDBC driver from 0.3.2 to 0.9.6#1297
Open
alexey-milovidov wants to merge 2 commits intosqlancer:mainfrom
Open
ClickHouse: Upgrade JDBC driver from 0.3.2 to 0.9.6#1297alexey-milovidov wants to merge 2 commits intosqlancer:mainfrom
alexey-milovidov wants to merge 2 commits intosqlancer:mainfrom
Conversation
ClickHouse PR ClickHouse/ClickHouse#81835 added a check that forbids creating tables without insertable columns (e.g., tables with only MATERIALIZED or ALIAS columns). Since SQLancer's random table generator can produce such definitions, ClickHouse now returns EMPTY_LIST_OF_COLUMNS_PASSED, which should be treated as an expected error rather than causing an AssertionError. The table creation retry loop in ClickHouseProvider.generateDatabase already handles expected errors by regenerating the table definition.
The old driver (ru.yandex.clickhouse:clickhouse-jdbc:0.3.2) failed to decompress error responses from the server, throwing "Magic is not correct" IOException instead of reporting the actual ClickHouse error message. This caused SQLancer to treat expected errors (like ILLEGAL_TYPE_OF_ARGUMENT) as assertion failures, because the JDBC exception message didn't contain the expected error substrings. Changes: - Update Maven dependency from ru.yandex.clickhouse:clickhouse-jdbc:0.3.2 to com.clickhouse:clickhouse-jdbc:0.9.6 (with "all" classifier) - Update all imports from com.clickhouse.client.ClickHouseDataType to com.clickhouse.data.ClickHouseDataType (package was renamed) - Add "Magic is not correct" to expected errors as safety net Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
|
Thanks a lot for the PR! Currently, I see the following CI failure: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ru.yandex.clickhouse:clickhouse-jdbc:0.3.2tocom.clickhouse:clickhouse-jdbc:0.9.6(withallclassifier)com.clickhouse.client.ClickHouseDataTypetocom.clickhouse.data.ClickHouseDataType"Magic is not correct"to expected errors as safety net for JDBC compression protocol issuesProblem
The old JDBC driver (0.3.2) fails to properly handle compressed error responses from the ClickHouse server. When a query fails (e.g.,
ILLEGAL_TYPE_OF_ARGUMENTduring table creation), the server sends an error response, but the old driver tries to decompress it using ClickHouse native LZ4 and fails with:This prevents SQLancer from matching the error against the expected errors list, causing it to throw
AssertionErrorfor every table creation failure. As a result, all 6 ClickHouse tests report "Executed 0 queries" because database generation never completes.The new driver (0.9.6) from
com.clickhousegroup properly handles error responses regardless of compression settings.