Skip to content

Fix client-v2: detect the codec of a compressed response instead of assuming LZ4 - #3106

Open
polyglotAI-bot wants to merge 15 commits into
mainfrom
polyglot/fix-compressed-response-codec-detection
Open

Fix client-v2: detect the codec of a compressed response instead of assuming LZ4#3106
polyglotAI-bot wants to merge 15 commits into
mainfrom
polyglot/fix-compressed-response-codec-detection

Conversation

@polyglotAI-bot

@polyglotAI-bot polyglotAI-bot commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Description

Fixes #3105.

client-v2 requested a compressed response with the compress=1 framing of the HTTP interface, whose codec the
server chooses on its own, and decoded every block as ClickHouse-framed LZ4. ClickHouse 26.9
(#108786) changed that codec from LZ4 to ZSTD(3), so
every compressed read failed with Invalid LZ4 magic byte: '-112' (0x90 is the ZSTD method byte).

The framed output follows the built-in default codec, so no client-side knob restores LZ4 - verified against
26.9.1.954: compress=1 answers with method byte 0x90 and network_compression_method=LZ4 does not change it
(the server PR states the path has "no runtime rollback").

The algorithm is therefore now part of the request instead of a property of the server: the client asks for a
response with the HTTP content coding of the algorithm it will decode, so a compressed body always uses the
algorithm the client selected, on every server version.

Changes

  • CompressionAlgorithm (LZ4, ZSTD, GZIP, NONE) defines the available algorithms, each with its content
    coding.
  • New property client.compression_algorithm, default LZ4, with Client.Builder#compressionAlgorithm and the
    per-operation QuerySettings#compressionAlgorithm / InsertSettings#compressionAlgorithm. The name and the
    content-coding token are both accepted, in any case.
  • A compressed response is requested with Accept-Encoding: <coding> and enable_http_compression=1; compress=1
    is not requested any more. A response without a content coding is read as a plain body.
  • A compressed request follows the algorithm together with useHttpCompression, as before; the ClickHouse framing of
    a request compressed without it stays LZ4, and the client warns when the two contradict.
  • NONE disables compression of both directions.
  • Packaging is unchanged: zstd-jni stays a provided dependency of clickhouse-jdbc and is not added to
    client-v2. An application that selects ZSTD declares the dependency itself.
  • Docs: CHANGELOG.md (breaking-changes entry and bug fix), the 0.11.0 migration guide
    (docs/releases/0_11_0.md), and docs/features.md.

Test

Pre-PR validation gate

  • Deterministic repro confirmed (fails on unpatched code against 26.9, passes with the fix)
  • Root cause documented above
  • Fix targets the root cause
  • Test fails without fix, passes with fix
  • No existing tests broken or weakened
  • Convention compliance verified per AGENTS.md and docs/changes_checklist.md (new config property: unique
    key, value type matches parsing, default parses, focused tests; enum constant appended, not inserted)
  • CHANGELOG.md, the 0.11.0 migration guide and docs/features.md updated

…ssuming LZ4

ClickHouse 26.9 switched the default codec of the HTTP compress=1 framing to
ZSTD(3), while the response reader asserted the LZ4 method byte of every block,
so every compressed read failed with "Invalid LZ4 magic byte: '-112'". The
framing is self-describing, so the reader now takes the codec from the block
header and decompresses LZ4, ZSTD and uncompressed blocks. A block of an unknown
codec is still rejected, which keeps the fallback that reads an unframed error
body. zstd-jni becomes a required dependency of client-v2 and is shaded into the
all artifacts.

Fixes: #3105
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Client V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.client.api 62.70% 785 1252
com.clickhouse.client.api.command 0.00% 30
com.clickhouse.client.api.data_formats 56.54% 350 619
com.clickhouse.client.api.data_formats.internal 54.07% 1402 2593
com.clickhouse.client.api.enums 100.00% 27 27
com.clickhouse.client.api.http 0.00% 1
com.clickhouse.client.api.insert 76.19% 80 105
com.clickhouse.client.api.internal 69.33% 1121 1617
com.clickhouse.client.api.metadata 75.93% 41 54
com.clickhouse.client.api.metrics 47.06% 40 85
com.clickhouse.client.api.observability 96.04% 194 202
com.clickhouse.client.api.observability.micrometer 100.00% 57 57
com.clickhouse.client.api.observability.otel 98.65% 73 74
com.clickhouse.client.api.query 58.39% 94 161
com.clickhouse.client.api.serde 77.19% 44 57
com.clickhouse.client.api.sql 87.50% 28 32
com.clickhouse.client.api.transport 93.10% 81 87
Class Coverage
Class Coverage Lines Covered Total Lines
com.clickhouse.client.api.ClickHouseException 57.14% 8 14
com.clickhouse.client.api.Client 64.29% 333 518
com.clickhouse.client.api.Client.Builder 42.91% 112 261
com.clickhouse.client.api.Client.new DataStreamWriter() {...} 100.00% 8 8
com.clickhouse.client.api.ClientConfigProperties 81.52% 172 211
com.clickhouse.client.api.ClientConfigProperties.new ClientConfigProperties() {...} 100.00% 8 8
com.clickhouse.client.api.ClientException 66.67% 4 6
com.clickhouse.client.api.ClientFaultCause 100.00% 7 7
com.clickhouse.client.api.ClientMisconfigurationException 100.00% 4 4
com.clickhouse.client.api.command.CommandResponse 0.00% 17
com.clickhouse.client.api.command.CommandSettings 0.00% 13
com.clickhouse.client.api.ConnectionInitiationException 50.00% 3 6
com.clickhouse.client.api.ConnectionReuseStrategy 100.00% 3 3
com.clickhouse.client.api.data_formats.GsonJsonParserFactory 90.00% 9 10
com.clickhouse.client.api.data_formats.GsonJsonParserFactory.JsonParserImpl 0.00% 11
com.clickhouse.client.api.data_formats.GsonJsonParserFactory.new TypeToken() {...} 100.00% 1 1
com.clickhouse.client.api.data_formats.internal.AbstractBinaryFormatReader 42.21% 176 417
com.clickhouse.client.api.data_formats.internal.AbstractBinaryFormatReader.RecordWrapper 14.71% 5 34
com.clickhouse.client.api.data_formats.internal.BinaryReaderBackedRecord 0.00% 88
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader 70.42% 400 568
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.ArrayValue 83.72% 36 43
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.CachingByteBufferAllocator 100.00% 8 8
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.DefaultByteBufferAllocator 100.00% 2 2
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.EnumValue 70.00% 7 10
com.clickhouse.client.api.data_formats.internal.InetAddressConverter 0.00% 27
com.clickhouse.client.api.data_formats.internal.MapBackedRecord 19.23% 45 234
com.clickhouse.client.api.data_formats.internal.NumberConverter 81.72% 76 93
com.clickhouse.client.api.data_formats.internal.NumberConverter.NumberType 85.71% 6 7
com.clickhouse.client.api.data_formats.internal.ProcessParser 83.33% 35 42
com.clickhouse.client.api.data_formats.internal.SerializerUtils 55.45% 483 871
com.clickhouse.client.api.data_formats.internal.SerializerUtils.DynamicClassLoader 100.00% 3 3
com.clickhouse.client.api.data_formats.internal.StringValue 97.14% 34 35
com.clickhouse.client.api.data_formats.internal.ValueConverters 77.48% 86 111
com.clickhouse.client.api.data_formats.JacksonJsonParserFactory 100.00% 5 5
com.clickhouse.client.api.data_formats.JacksonJsonParserFactory.JsonParserImpl 100.00% 8 8
com.clickhouse.client.api.data_formats.JSONEachRowFormatReader 95.12% 195 205
com.clickhouse.client.api.data_formats.NativeFormatReader 70.13% 54 77
com.clickhouse.client.api.data_formats.NativeFormatReader.Block 66.67% 12 18
com.clickhouse.client.api.data_formats.RowBinaryFormatReader 0.00% 19
com.clickhouse.client.api.data_formats.RowBinaryFormatSerializer 15.32% 17 111
com.clickhouse.client.api.data_formats.RowBinaryFormatWriter 31.68% 32 101
com.clickhouse.client.api.data_formats.RowBinaryFormatWriter.InputStreamHolder 0.00% 4
com.clickhouse.client.api.data_formats.RowBinaryFormatWriter.ReaderHolder 0.00% 4
com.clickhouse.client.api.data_formats.RowBinaryWithNamesAndTypesFormatReader 77.27% 17 22
com.clickhouse.client.api.data_formats.RowBinaryWithNamesFormatReader 0.00% 23
com.clickhouse.client.api.DataStreamWriter 0.00% 1
com.clickhouse.client.api.DataTransferException 50.00% 2 4
com.clickhouse.client.api.DataTypeUtils 52.50% 63 120
com.clickhouse.client.api.enums.CompressionAlgorithm 100.00% 13 13
com.clickhouse.client.api.enums.Protocol 100.00% 2 2
com.clickhouse.client.api.enums.ProxyType 100.00% 3 3
com.clickhouse.client.api.enums.SSLMode 100.00% 9 9
com.clickhouse.client.api.http.ClickHouseHttpProto 0.00% 1
com.clickhouse.client.api.insert.InsertResponse 33.33% 5 15
com.clickhouse.client.api.insert.InsertSettings 83.33% 75 90
com.clickhouse.client.api.internal.BaseCollectionConverter 100.00% 28 28
com.clickhouse.client.api.internal.BaseCollectionConverter.BaseArrayWriter 100.00% 6 6
com.clickhouse.client.api.internal.BaseCollectionConverter.BaseCollectionWriter 71.43% 15 21
com.clickhouse.client.api.internal.BaseCollectionConverter.BaseListWriter 100.00% 6 6
com.clickhouse.client.api.internal.BaseCollectionConverter.ListConversionState 100.00% 11 11
com.clickhouse.client.api.internal.BasicObjectsPool 0.00% 11
com.clickhouse.client.api.internal.CachingObjectsSupplier 0.00% 10
com.clickhouse.client.api.internal.ClickHouseLZ4InputStream 43.24% 32 74
com.clickhouse.client.api.internal.ClickHouseLZ4OutputStream 78.46% 51 65
com.clickhouse.client.api.internal.ClientStatisticsHolder 50.00% 7 14
com.clickhouse.client.api.internal.ClientUtils 100.00% 8 8
com.clickhouse.client.api.internal.CommonSettings 90.28% 65 72
com.clickhouse.client.api.internal.CompressedEntity 68.57% 24 35
com.clickhouse.client.api.internal.CredentialsManager 66.15% 43 65
com.clickhouse.client.api.internal.DataTypeConverter 87.84% 224 255
com.clickhouse.client.api.internal.DataTypeConverter.ArrayAsStringWriter 100.00% 18 18
com.clickhouse.client.api.internal.DataTypeConverter.ListAsStringWriter 100.00% 16 16
com.clickhouse.client.api.internal.DataTypeConverter.Literal 100.00% 3 3
com.clickhouse.client.api.internal.EnvUtils 0.00% 14
com.clickhouse.client.api.internal.Gauge 66.67% 4 6
com.clickhouse.client.api.internal.HttpAPIClientHelper 70.07% 384 548
com.clickhouse.client.api.internal.HttpAPIClientHelper.CustomSSLConnectionFactory 100.00% 11 11
com.clickhouse.client.api.internal.HttpAPIClientHelper.DummySSLConnectionSocketFactory 0.00% 3
com.clickhouse.client.api.internal.HttpAPIClientHelper.MeteredManagedHttpClientConnectionFactory 50.00% 7 14
com.clickhouse.client.api.internal.HttpAPIClientHelper.TransportRequestImpl 58.33% 7 12
com.clickhouse.client.api.internal.HttpAPIClientHelper.TransportResponseImpl 81.25% 13 16
com.clickhouse.client.api.internal.LZ4Entity 60.98% 25 41
com.clickhouse.client.api.internal.MapUtils 30.65% 19 62
com.clickhouse.client.api.internal.SchemaUtils 100.00% 24 24
com.clickhouse.client.api.internal.ServerSettings 0.00% 1
com.clickhouse.client.api.internal.SslContextProvider 4.88% 2 41
com.clickhouse.client.api.internal.SslContextProvider.Builder 71.05% 27 38
com.clickhouse.client.api.internal.SslContextProvider.NonValidatingTrustManager 25.00% 1 4
com.clickhouse.client.api.internal.StopWatch 53.33% 8 15
com.clickhouse.client.api.internal.TableSchemaParser 69.23% 18 26
com.clickhouse.client.api.internal.ValidationUtils 55.00% 11 20
com.clickhouse.client.api.internal.ValidationUtils.SettingsValidationException 100.00% 3 3
com.clickhouse.client.api.metadata.DefaultColumnToMethodMatchingStrategy 100.00% 13 13
com.clickhouse.client.api.metadata.NoSuchColumnException 0.00% 2
com.clickhouse.client.api.metadata.TableSchema 71.79% 28 39
com.clickhouse.client.api.metrics.ClientMetrics 100.00% 7 7
com.clickhouse.client.api.metrics.MicrometerLoader 0.00% 44
com.clickhouse.client.api.metrics.OperationMetrics 94.74% 18 19
com.clickhouse.client.api.metrics.OperationType 100.00% 3 3
com.clickhouse.client.api.metrics.ServerMetrics 100.00% 12 12
com.clickhouse.client.api.observability.DefaultMetricsRecorder 100.00% 9 9
com.clickhouse.client.api.observability.DefaultSpanRecorder 100.00% 12 12
com.clickhouse.client.api.observability.DefaultSpanRecorder.NoopSpan 75.00% 3 4
com.clickhouse.client.api.observability.MetricAttribute 100.00% 11 11
com.clickhouse.client.api.observability.MetricName 100.00% 13 13
com.clickhouse.client.api.observability.MetricsSupport 92.31% 36 39
com.clickhouse.client.api.observability.micrometer.MicrometerMetricsRecorder 100.00% 57 57
com.clickhouse.client.api.observability.otel.OpenTelemetrySpanRecorder 100.00% 47 47
com.clickhouse.client.api.observability.otel.OpenTelemetrySpanRecorder.OpenTelemetrySpan 96.30% 26 27
com.clickhouse.client.api.observability.SpanAttribute 100.00% 25 25
com.clickhouse.client.api.observability.SpanSupport 95.51% 85 89
com.clickhouse.client.api.query.NullValueException 50.00% 2 4
com.clickhouse.client.api.query.QueryResponse 37.84% 14 37
com.clickhouse.client.api.query.QuerySettings 88.64% 78 88
com.clickhouse.client.api.query.QueryStatement 0.00% 4
com.clickhouse.client.api.query.Records 0.00% 23
com.clickhouse.client.api.query.Records.new Iterator() {...} 0.00% 5
com.clickhouse.client.api.serde.DataSerializationException 33.33% 2 6
com.clickhouse.client.api.serde.POJOSerDe 85.71% 42 49
com.clickhouse.client.api.serde.SerializerNotFoundException 0.00% 2
com.clickhouse.client.api.ServerException 92.31% 12 13
com.clickhouse.client.api.ServerException.ErrorCodes 0.00% 9
com.clickhouse.client.api.Session 78.26% 36 46
com.clickhouse.client.api.sql.SQLUtils 87.50% 28 32
com.clickhouse.client.api.transport.ClientNodeSelector 100.00% 21 21
com.clickhouse.client.api.transport.EndpointState 100.00% 10 10
com.clickhouse.client.api.transport.HttpEndpoint 88.00% 44 50
com.clickhouse.client.api.transport.HttpEndpoint.EndpointDetails 100.00% 6 6
com.clickhouse.client.api.TransportException 0.00% 3

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

JDBC V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.data 19.23% 5 26
com.clickhouse.jdbc 81.72% 1735 2123
com.clickhouse.jdbc.internal 89.71% 1334 1487
com.clickhouse.jdbc.internal.parser.antlr4 40.93% 6434 15719
com.clickhouse.jdbc.internal.parser.javacc 72.82% 4917 6752
com.clickhouse.jdbc.metadata 88.86% 622 700
com.clickhouse.jdbc.types 56.01% 289 516
Class Coverage
Class Coverage Lines Covered Total Lines
com.clickhouse.data.Tuple 19.23% 5 26
com.clickhouse.jdbc.ClientInfoProperties 100.00% 12 12
com.clickhouse.jdbc.ConnectionImpl 90.97% 262 288
com.clickhouse.jdbc.DataSourceImpl 96.15% 25 26
com.clickhouse.jdbc.Driver 78.26% 36 46
com.clickhouse.jdbc.Driver.FrameworksDetection 90.91% 10 11
com.clickhouse.jdbc.DriverProperties 93.75% 30 32
com.clickhouse.jdbc.internal.DetachedResultSet 80.39% 332 413
com.clickhouse.jdbc.internal.ExceptionUtils 72.00% 18 25
com.clickhouse.jdbc.internal.FeatureManager 100.00% 8 8
com.clickhouse.jdbc.internal.JdbcConfiguration 95.26% 201 211
com.clickhouse.jdbc.internal.JdbcUtils 90.09% 382 424
com.clickhouse.jdbc.internal.JdbcUtils.ArrayProcessingCursor 100.00% 11 11
com.clickhouse.jdbc.internal.ParsedPreparedStatement 96.23% 51 53
com.clickhouse.jdbc.internal.ParsedStatement 93.75% 15 16
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseLexer 77.78% 28 36
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser 45.76% 4846 10589
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AliasContext 66.67% 6 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterPrivilegeContext 0.00% 44
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseAddColumnContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseAddIndexContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseAddProjectionContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseAlterTypeContext 31.25% 5 16
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseAttachContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseClearColumnContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseClearIndexContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseClearProjectionContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseCommentContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseDeleteContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseDetachContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseDropColumnContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseDropIndexContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseDropPartitionContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseDropProjectionContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseFreezePartitionContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseMaterializeIndexContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseMaterializeProjectionContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseModifyCodecContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseModifyCommentContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseModifyContext 50.00% 5 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseModifyOrderByContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseModifyRemoveContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseModifyTTLContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseMovePartitionContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseRemoveTTLContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseRenameContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseReplaceContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableClauseUpdateContext 0.00% 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableColumnPositionContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AlterTableStmtContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ArrayJoinClauseContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AssignmentExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AssignmentExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AssignmentValueContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AssignmentValuesContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AssignmentValuesEmptyContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AssignmentValuesListContext 45.45% 5 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.AttachStmtContext 33.33% 6 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CheckAllTablesStmtContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CheckGrantStmtContext 45.45% 5 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CheckStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CheckTableStmtContext 35.71% 5 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ClusterClauseContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CodecArgExprContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CodecExprContext 0.00% 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnAliasesContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnArgExprContext 66.67% 6 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnArgListContext 46.15% 6 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExceptExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExceptExprIdentifiersContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExceptExprRegexpContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprAgrFuncWithFilterContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprAliasContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprAndContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprArrayAccessContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprArrayContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprAsteriskContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprBetweenContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprCaseContext 35.71% 5 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprCast2Context 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprCastContext 45.45% 5 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprDateContext 71.43% 5 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprExtractContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprFunctionContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprIdentifierContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprIntervalContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprIsNullContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprLiteralContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprNegateContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprNotContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprOrContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprParamContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprParensContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprPrecedence1Context 50.00% 5 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprPrecedence2Context 50.00% 5 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprPrecedence3Context 26.32% 5 19
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprRegexpContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprSubqueryContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprSubstringContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprTernaryOpContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprTimestampContext 71.43% 5 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprTrimContext 0.00% 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprTupleAccessContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprTupleContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprWinFunctionContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnExprWinFunctionTargetContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnIdentifierContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnLambdaExprContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnPrivilegeContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnsClauseContext 53.85% 7 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnsExprAsteriskContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnsExprColumnContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnsExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnsExprSubqueryContext 0.00% 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnTypeExprComplexContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnTypeExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnTypeExprEnumContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnTypeExprNestedContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnTypeExprParamContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ColumnTypeExprSimpleContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateDatabaseStmtContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateDictionaryStmtContext 21.74% 5 23
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateFunctionStmtContext 33.33% 5 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateLiveViewStmtContext 0.00% 21
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateMaterializedViewStmtContext 0.00% 20
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateNamedCollectionStmtContext 27.78% 5 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreatePolicyStmtContext 17.24% 5 29
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreatePrivilegeContext 0.00% 24
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateProfileStmtContext 14.71% 5 34
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateQuotaStmtContext 18.52% 5 27
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateRoleStmtContext 26.32% 5 19
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateTableStmtContext 25.00% 5 20
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateUserStmtContext 17.86% 5 28
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CreateViewStmtContext 26.32% 5 19
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CteClauseContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CteUnboundColContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CteUnboundColExprContext 50.00% 5 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CteUnboundColLiteralContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CteUnboundColParamContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.CteUnboundSubQueryContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DatabaseIdentifierContext 63.64% 7 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DataClauseContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DataClauseFormatContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DataClauseSelectContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DataClauseValuesContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DeleteStmtContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DescribeStmtContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DestinationClauseContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DictionaryArgExprContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DictionaryAttrDfntContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DictionaryEngineClauseContext 75.00% 6 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DictionaryPrimaryKeyClauseContext 46.15% 6 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DictionarySchemaClauseContext 46.15% 6 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DictionarySettingsClauseContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DropPrivilegeContext 0.00% 24
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.DropStmtContext 15.00% 6 40
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.EngineClauseContext 75.00% 6 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.EngineExprContext 46.15% 6 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.EnumValueContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ExchangeStmtContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ExistsDatabaseStmtContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ExistsStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ExistsTableStmtContext 31.25% 5 16
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ExplainStmtContext 33.33% 6 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.FilenameContext 0.00% 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.FloatingLiteralContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.FrameBetweenContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.FrameStartContext 0.00% 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.FromClauseContext 36.84% 7 19
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.GrantStmtContext 20.69% 6 29
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.GrantTableIdentifierContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.GroupByClauseContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.HavingClauseContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.IdentifierContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.IdentifierOrNullContext 66.67% 6 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.InserParameterExprContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.InsertParameterContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.InsertParameterFuncExprContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.InsertRawValueContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.InsertStmtContext 60.00% 9 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.IntervalContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinConstraintClauseContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinExprCrossOpContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinExprOpContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinExprParensContext 0.00% 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinExprTableContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinOpContext 0.00% 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinOpCrossContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinOpFullContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinOpInnerContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.JoinOpLeftRightContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.KeywordContext 1.89% 6 318
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.KeywordForAliasContext 2.33% 6 258
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.KillMutationStmtContext 35.71% 5 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.KillQueryStmtContext 35.71% 5 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.KillStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.LayoutClauseContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.LifetimeClauseContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.LimitByClauseContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.LimitClauseContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.LimitExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.LiteralContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.MoveStmtContext 33.33% 6 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.NameCollectionKeyContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.NamedQueryContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.NestedIdentifierContext 70.00% 7 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.NumberLiteralContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.OptimizeByExprContext 30.00% 6 20
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.OptimizeStmtContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.OrderByClauseContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.OrderExprContext 37.50% 6 16
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.OrderExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.PartitionByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.PartitionClauseContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.PrewhereClauseContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.PrimaryKeyClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.PrivelegeListContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.PrivilegeContext 13.64% 6 44
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ProjectionOrderByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ProjectionSelectStmtContext 0.00% 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.QueryContext 38.24% 13 34
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.QueryStmtContext 46.67% 7 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.QuotaForClauseContext 33.33% 6 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.QuotaMaxExprContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.RangeClauseContext 0.00% 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.RatioExprContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.RenameStmtContext 37.50% 6 16
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.RevokeStmtContext 26.09% 6 23
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SampleByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SampleClauseContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SchemaAsFunctionClauseContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SchemaAsTableClauseContext 71.43% 5 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SchemaDescriptionClauseContext 45.45% 5 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SelectStmtContext 21.43% 6 28
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SelectStmtWithParensContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SelectUnionStmtContext 40.00% 6 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SetRolesListContext 63.64% 7 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SetRoleStmtContext 38.10% 8 21
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SetStmtContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SettingExprContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SettingExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SettingsClauseContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowAccessStmtContext 71.43% 5 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowClustersStmtContext 27.78% 5 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowClusterStmtContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowColumnsStmtContext 23.81% 5 21
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowCreatePolicyStmtContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowCreateProfileContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowCreateQuotaStmtContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowCreateRoleStmtContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowCreateStmtContext 27.78% 5 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowCreateUserStmtContext 38.46% 5 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowDatabasesStmtContext 0.00% 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowDictionariesStmtContext 26.32% 5 19
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowEnginesStmtContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowFromDbClauseContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowFromTableFromDbClauseContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowFSCachesStmtContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowFunctionsStmtContext 45.45% 5 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowGrantsStmtContext 33.33% 5 15
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowIndexStmtContext 22.73% 5 22
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowMergesStmtContext 27.78% 5 18
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowPoliciesStmtContext 50.00% 5 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowPrivilegeContext 0.00% 25
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowProcessListStmtContext 41.67% 5 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowProfilesStmtContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowQuotasStmtContext 71.43% 5 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowQuotaStmtContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowRolesStmtContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowSettingsStmtContext 45.45% 5 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowSettingStmtContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowTablesStmtContext 23.81% 5 21
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ShowUsersStmtContext 71.43% 5 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SourceClauseContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SourcePrivilegeContext 0.00% 25
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SubqueryClauseContext 66.67% 6 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SystemPrivilegeContext 0.00% 81
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.SystemStmtContext 5.88% 6 102
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableArgExprContext 60.00% 6 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableArgListContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableColumnDfntContext 35.29% 6 17
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableColumnPropertyExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableColumnPropertyTypeContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableElementExprColumnContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableElementExprConstraintContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableElementExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableElementExprIndexContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableElementExprProjectionContext 0.00% 7
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableExprAliasContext 55.56% 5 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableExprFunctionContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableExprIdentifierContext 100.00% 6 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableExprSubqueryContext 62.50% 5 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableFunctionExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableIdentifierContext 80.00% 8 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableIndexDfntContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableProjectionDfntContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TableSchemaClauseContext 83.33% 5 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TopClauseContext 0.00% 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TruncateStmtContext 42.86% 6 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TtlClauseContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.TtlExprContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UndropStmtContext 50.00% 6 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UpdateStmtContext 46.15% 6 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UserCreateGranteesClauseContext 0.00% 19
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UserCreateHostClauseContext 0.00% 14
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UserCreateHostDefContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UserIdentifiedClauseContext 27.27% 6 22
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UserIdentifiedWithClauseContext 17.14% 6 35
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UserIdentifierContext 54.55% 6 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UseStmtContext 77.78% 7 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.UuidClauseContext 66.67% 6 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ValidUntilClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ViewIdentifierContext 0.00% 8
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.ViewParamContext 63.64% 7 11
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WatchStmtContext 0.00% 12
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WhereClauseContext 66.67% 6 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WindowClauseContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WindowExprContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WinFrameBoundContext 0.00% 13
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WinFrameClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WinFrameExtendContext 0.00% 6
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WinOrderByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WinPartitionByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParser.WithClauseContext 0.00% 9
com.clickhouse.jdbc.internal.parser.antlr4.ClickHouseParserBaseListener 64.76% 384 593
com.clickhouse.jdbc.internal.parser.javacc.AbstractCharStream 52.04% 102 196
com.clickhouse.jdbc.internal.parser.javacc.ClickHouseSqlParser 72.52% 2937 4050
com.clickhouse.jdbc.internal.parser.javacc.ClickHouseSqlParserConstants 100.00% 1 1
com.clickhouse.jdbc.internal.parser.javacc.ClickHouseSqlParserTokenManager 84.03% 1710 2035
com.clickhouse.jdbc.internal.parser.javacc.ClickHouseSqlStatement 38.78% 57 147
com.clickhouse.jdbc.internal.parser.javacc.ClickHouseSqlUtils 68.57% 24 35
com.clickhouse.jdbc.internal.parser.javacc.JdbcParseHandler 24.05% 19 79
com.clickhouse.jdbc.internal.parser.javacc.LanguageType 100.00% 6 6
com.clickhouse.jdbc.internal.parser.javacc.OperationType 100.00% 2 2
com.clickhouse.jdbc.internal.parser.javacc.ParseException 3.95% 3 76
com.clickhouse.jdbc.internal.parser.javacc.ParseHandler 50.00% 2 4
com.clickhouse.jdbc.internal.parser.javacc.SimpleCharStream 30.00% 9 30
com.clickhouse.jdbc.internal.parser.javacc.StatementType 92.50% 37 40
com.clickhouse.jdbc.internal.parser.javacc.Token 66.67% 8 12
com.clickhouse.jdbc.internal.parser.javacc.TokenMgrException 0.00% 39
com.clickhouse.jdbc.internal.SqlParserFacade 94.44% 51 54
com.clickhouse.jdbc.internal.SqlParserFacade.ANTLR4AndParamsParser 100.00% 18 18
com.clickhouse.jdbc.internal.SqlParserFacade.ANTLR4AndParamsParser.ParseStatementAndParamsListener 92.86% 13 14
com.clickhouse.jdbc.internal.SqlParserFacade.ANTLR4Parser 100.00% 49 49
com.clickhouse.jdbc.internal.SqlParserFacade.ANTLR4Parser.ParsedPreparedStatementListener 98.25% 56 57
com.clickhouse.jdbc.internal.SqlParserFacade.ANTLR4Parser.ParsedStatementListener 100.00% 15 15
com.clickhouse.jdbc.internal.SqlParserFacade.ANTLR4Parser.ParserErrorListener 100.00% 2 2
com.clickhouse.jdbc.internal.SqlParserFacade.JavaCCParser 95.58% 108 113
com.clickhouse.jdbc.internal.SqlParserFacade.SQLParser 100.00% 4 4
com.clickhouse.jdbc.JdbcV2Wrapper 100.00% 4 4
com.clickhouse.jdbc.metadata.DatabaseMetaDataImpl 86.23% 482 559
com.clickhouse.jdbc.metadata.DatabaseMetaDataImpl.TableType 100.00% 14 14
com.clickhouse.jdbc.metadata.DatabaseMetaDataImpl.TypeLiteralInfo 100.00% 6 6
com.clickhouse.jdbc.metadata.ParameterMetaDataImpl 100.00% 23 23
com.clickhouse.jdbc.metadata.ResultSetMetaDataImpl 98.86% 87 88
com.clickhouse.jdbc.metadata.ResultSetMetaDataImpl.ColumnTypeBinding 100.00% 10 10
com.clickhouse.jdbc.PreparedStatementImpl 78.47% 390 497
com.clickhouse.jdbc.PreparedStatementImpl.ArrayProcessingCursor 100.00% 7 7
com.clickhouse.jdbc.ResultSetImpl 84.75% 539 636
com.clickhouse.jdbc.StatementImpl 94.03% 331 352
com.clickhouse.jdbc.types.Array 88.00% 44 50
com.clickhouse.jdbc.types.ArrayResultSet 51.75% 237 458
com.clickhouse.jdbc.types.Struct 100.00% 8 8
com.clickhouse.jdbc.WriterStatementImpl 41.98% 89 212

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

JDBC V1 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.jdbc 35.29% 944 2675
com.clickhouse.jdbc.internal 64.16% 1350 2104
com.clickhouse.jdbc.parser 69.40% 4561 6572
Class Coverage
Class Coverage Lines Covered Total Lines
com.clickhouse.jdbc.AbstractResultSet 1.33% 3 226
com.clickhouse.jdbc.ClickHouseArray 34.62% 9 26
com.clickhouse.jdbc.ClickHouseBlob 0.00% 12
com.clickhouse.jdbc.ClickHouseClob 0.00% 14
com.clickhouse.jdbc.ClickHouseConnection 52.78% 19 36
com.clickhouse.jdbc.ClickHouseDatabaseMetaData 47.31% 185 391
com.clickhouse.jdbc.ClickHouseDataSource 41.18% 7 17
com.clickhouse.jdbc.ClickHouseDriver 72.73% 40 55
com.clickhouse.jdbc.ClickHousePreparedStatement 16.67% 13 78
com.clickhouse.jdbc.ClickHouseResultSet 64.84% 166 256
com.clickhouse.jdbc.ClickHouseResultSetMetaData 34.21% 13 38
com.clickhouse.jdbc.ClickHouseScrollableResultSet 0.00% 17
com.clickhouse.jdbc.ClickHouseStatement 0.00% 1
com.clickhouse.jdbc.ClickHouseStruct 71.43% 5 7
com.clickhouse.jdbc.ClickHouseXml 0.00% 10
com.clickhouse.jdbc.CombinedResultSet 51.88% 83 160
com.clickhouse.jdbc.DataSourceV1 69.70% 23 33
com.clickhouse.jdbc.DriverV1 40.63% 39 96
com.clickhouse.jdbc.DriverV1.FrameworksDetection 90.91% 10 11
com.clickhouse.jdbc.internal.AbstractPreparedStatement 27.59% 16 58
com.clickhouse.jdbc.internal.ClickHouseConnectionImpl 68.97% 389 564
com.clickhouse.jdbc.internal.ClickHouseJdbcUrlParser 100.00% 29 29
com.clickhouse.jdbc.internal.ClickHouseJdbcUrlParser.ConnectionInfo 100.00% 18 18
com.clickhouse.jdbc.internal.ClickHouseParameterMetaData 70.37% 19 27
com.clickhouse.jdbc.internal.ClickHouseStatementImpl 61.66% 283 459
com.clickhouse.jdbc.internal.InputBasedPreparedStatement 71.76% 183 255
com.clickhouse.jdbc.internal.JdbcSavepoint 100.00% 14 14
com.clickhouse.jdbc.internal.JdbcTransaction 72.50% 58 80
com.clickhouse.jdbc.internal.SqlBasedPreparedStatement 68.60% 236 344
com.clickhouse.jdbc.internal.StreamBasedPreparedStatement 45.21% 66 146
com.clickhouse.jdbc.internal.TableBasedPreparedStatement 35.45% 39 110
com.clickhouse.jdbc.JdbcConfig 71.84% 74 103
com.clickhouse.jdbc.JdbcParameterizedQuery 67.78% 61 90
com.clickhouse.jdbc.JdbcParseHandler 95.12% 78 82
com.clickhouse.jdbc.JdbcTypeMapping 42.96% 61 142
com.clickhouse.jdbc.JdbcTypeMapping.AnsiTypeMapping 16.81% 20 119
com.clickhouse.jdbc.JdbcTypeMapping.InstanceHolder 100.00% 3 3
com.clickhouse.jdbc.JdbcWrapper 20.00% 1 5
com.clickhouse.jdbc.Main 0.00% 60
com.clickhouse.jdbc.Main.GenericQuery 0.00% 114
com.clickhouse.jdbc.Main.Int8Query 0.00% 59
com.clickhouse.jdbc.Main.MixedQuery 0.00% 89
com.clickhouse.jdbc.Main.Options 0.00% 124
com.clickhouse.jdbc.Main.Pojo 0.00% 25
com.clickhouse.jdbc.Main.StringQuery 0.00% 57
com.clickhouse.jdbc.Main.UInt64Query 0.00% 57
com.clickhouse.jdbc.parser.AbstractCharStream 44.44% 88 198
com.clickhouse.jdbc.parser.ClickHouseSqlParser 68.89% 2819 4092
com.clickhouse.jdbc.parser.ClickHouseSqlParserConstants 100.00% 1 1
com.clickhouse.jdbc.parser.ClickHouseSqlParserTokenManager 76.58% 1458 1904
com.clickhouse.jdbc.parser.ClickHouseSqlStatement 69.93% 100 143
com.clickhouse.jdbc.parser.ClickHouseSqlUtils 100.00% 28 28
com.clickhouse.jdbc.parser.LanguageType 100.00% 6 6
com.clickhouse.jdbc.parser.OperationType 100.00% 2 2
com.clickhouse.jdbc.parser.ParseException 3.95% 3 76
com.clickhouse.jdbc.parser.ParseHandler 75.00% 3 4
com.clickhouse.jdbc.parser.SimpleCharStream 30.00% 9 30
com.clickhouse.jdbc.parser.StatementType 97.30% 36 37
com.clickhouse.jdbc.parser.Token 66.67% 8 12
com.clickhouse.jdbc.parser.TokenMgrException 0.00% 39
com.clickhouse.jdbc.SqlExceptionUtils 50.00% 31 62

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Client V1 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.client 51.73% 2106 4071
com.clickhouse.client.config 76.14% 217 285
com.clickhouse.client.naming 86.96% 20 23
Class Coverage
Class Coverage Lines Covered Total Lines
com.clickhouse.client.AbstractClient 63.93% 78 122
com.clickhouse.client.AbstractSocketClient 3.13% 7 224
com.clickhouse.client.AbstractSocketClient.SocketRequest 0.00% 8
com.clickhouse.client.ClickHouseClient 6.16% 17 276
com.clickhouse.client.ClickHouseClientBuilder 68.67% 57 83
com.clickhouse.client.ClickHouseClientBuilder.Agent 19.05% 28 147
com.clickhouse.client.ClickHouseClientBuilder.DummyClient 53.85% 7 13
com.clickhouse.client.ClickHouseCluster 40.98% 25 61
com.clickhouse.client.ClickHouseConfig 80.93% 208 257
com.clickhouse.client.ClickHouseConfig.ClientOptions 66.67% 14 21
com.clickhouse.client.ClickHouseCredentials 60.00% 18 30
com.clickhouse.client.ClickHouseDnsResolver 44.44% 8 18
com.clickhouse.client.ClickHouseException 74.58% 44 59
com.clickhouse.client.ClickHouseLoadBalancingPolicy 67.06% 57 85
com.clickhouse.client.ClickHouseLoadBalancingPolicy.DefaultPolicy 100.00% 2 2
com.clickhouse.client.ClickHouseLoadBalancingPolicy.FirstAlivePolicy 95.24% 20 21
com.clickhouse.client.ClickHouseLoadBalancingPolicy.RandomPolicy 100.00% 6 6
com.clickhouse.client.ClickHouseLoadBalancingPolicy.RoundRobinPolicy 92.86% 13 14
com.clickhouse.client.ClickHouseNode 80.45% 284 353
com.clickhouse.client.ClickHouseNode.Builder 66.67% 68 102
com.clickhouse.client.ClickHouseNode.Status 100.00% 5 5
com.clickhouse.client.ClickHouseNodes 53.87% 202 375
com.clickhouse.client.ClickHouseNodeSelector 88.64% 78 88
com.clickhouse.client.ClickHouseParameterizedQuery 76.32% 174 228
com.clickhouse.client.ClickHouseParameterizedQuery.QueryPart 62.50% 15 24
com.clickhouse.client.ClickHouseProtocol 97.06% 33 34
com.clickhouse.client.ClickHouseRequest 55.74% 330 592
com.clickhouse.client.ClickHouseRequest.Mutation 83.33% 90 108
com.clickhouse.client.ClickHouseRequest.PipedWriter 100.00% 7 7
com.clickhouse.client.ClickHouseRequestManager 17.86% 5 28
com.clickhouse.client.ClickHouseRequestManager.InstanceHolder 100.00% 1 1
com.clickhouse.client.ClickHouseResponse 18.18% 2 11
com.clickhouse.client.ClickHouseResponse.new ClickHouseResponse() {...} 33.33% 3 9
com.clickhouse.client.ClickHouseResponseSummary 85.00% 51 60
com.clickhouse.client.ClickHouseResponseSummary.Progress 92.00% 23 25
com.clickhouse.client.ClickHouseResponseSummary.Statistics 64.71% 11 17
com.clickhouse.client.ClickHouseSimpleResponse 48.57% 34 70
com.clickhouse.client.ClickHouseSslContextProvider 90.91% 10 11
com.clickhouse.client.ClickHouseStreamResponse 0.00% 47
com.clickhouse.client.ClickHouseTransaction 0.00% 220
com.clickhouse.client.ClickHouseTransaction.XID 0.00% 35
com.clickhouse.client.ClickHouseTransactionException 0.00% 11
com.clickhouse.client.ClickHouseVersionUtils 44.65% 71 159
com.clickhouse.client.config.ClickHouseClientOption 89.61% 138 154
com.clickhouse.client.config.ClickHouseDefaults 94.44% 34 36
com.clickhouse.client.config.ClickHouseDefaultSslContextProvider 45.24% 38 84
com.clickhouse.client.config.ClickHouseDefaultSslContextProvider.NonValidatingTrustManager 0.00% 4
com.clickhouse.client.config.ClickHouseHealthCheckMethod 100.00% 3 3
com.clickhouse.client.config.ClickHouseProxyType 100.00% 2 2
com.clickhouse.client.config.ClickHouseSslMode 100.00% 2 2
com.clickhouse.client.naming.SrvResolver 86.96% 20 23
com.clickhouse.client.UnsupportedProtocolException 0.00% 4

…ntly

The new negative paths of the block decoder had no test, and writing them
exposed two defects in them:

- ClickHouseUtils.format delegates to String.format, so the MessageFormat
  style placeholders of the three new messages were printed literally and
  the byte counts they carry were lost.
- Zstd.decompressByteArray throws ZstdException instead of returning an
  error code, so the Zstd.isError branch was unreachable and a corrupted
  ZSTD block escaped as a ZstdException while every other failure of the
  decoder is reported as a ClientException.

The corrupted frame tests now run from one data provider that covers an
unknown compression method, an impossible block size, a negative
uncompressed size, a checksum mismatch, a block the ZSTD codec rejects and
a ZSTD or uncompressed block whose declared size does not hold.
@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Pushed 0ce58b0 for the SonarCloud quality gate (coverage on new code was 73.9%).

Writing the missing tests for the new failure paths showed two defects in them:

  • ClickHouseUtils.format delegates to String.format, so the {0} / {1} placeholders of the three new messages were printed literally and the byte counts they carry were lost. They now use %s.
  • Zstd.decompressByteArray throws ZstdException instead of returning an error code, so the Zstd.isError branch was unreachable and a corrupted ZSTD block escaped as a ZstdException, while every other failure of the decoder is reported as a ClientException. It is now caught and wrapped.

The three corrupted-frame tests are merged into one @DataProvider and cover an unknown compression method, an impossible block size, a negative uncompressed size, a checksum mismatch, a block the ZSTD codec rejects, and a ZSTD or uncompressed block whose declared size does not hold. ClickHouseLZ4InputStream now has one uncovered new line pair left: the LinkageError guard for a platform without the native library of zstd-jni, which needs no test.

Verified: mvn -pl client-v2 test 673/673 pass, and the read path stays green on a live server (QueryServerContentCompressionTests 96/96 against 26.7.3.19).

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Triage

Category: bugfixRisk: high

Summary
Fixes #3105: every compressed read in client-v2 fails with Invalid LZ4 magic byte: '-112' against ClickHouse 26.9+, because the client requested compress=1 framing (whose codec the server now defaults to ZSTD(3), with no server-side rollback) while the reader hardcoded LZ4. Instead of the issue's suggested fix (auto-detect the codec from the frame header), the PR changes the negotiation: the client now requests responses via Accept-Encoding: <coding> + enable_http_compression=1 and never sends compress=1, so the compressed body always uses the client-chosen algorithm. It adds a new CompressionAlgorithm enum (LZ4/ZSTD/GZIP/NONE), a new client.compression_algorithm property (default LZ4) with builder and per-operation QuerySettings/InsertSettings setters, and rewrites the request/response compression wiring in HttpAPIClientHelper. Includes unit tests (WireMock request-contract pins, property parsing), an integration test per algorithm, and CHANGELOG/migration-guide/features.md updates.

What this impacts

  • client-v2 HTTP transport (HttpAPIClientHelper): compression negotiation for every query/insert — hot path for all users.
  • New public API surface: CompressionAlgorithm enum, client.compression_algorithm property, Client.Builder#compressionAlgorithm, QuerySettings/InsertSettings#compressionAlgorithm.
  • Documented breaking behavior: compress=1 is no longer sent; compressed reads now send enable_http_compression=1, which breaks user profiles with readonly = 1; response now carries Content-Encoding instead of ClickHouse framing.
  • Docs: CHANGELOG, docs/releases/0_11_0.md, docs/features.md.

Concerns

  • Large diff: +516/−47 across source, tests, and docs — exceeds the 400-line High threshold; consider splitting the algorithm-selection feature from the minimal 26.9 fix.
  • Behavioral change in existing logic with no feature flag to restore the previous compress=1 negotiation — a silent regression surface for readonly = 1 profiles and any consumer inspecting the response framing (documented as breaking, but not opt-in).
  • Bundling: the bugfix is intertwined with a new feature (algorithm selection API, per-operation overrides, NONE semantics that override compress/decompress).
  • Design divergence from the issue: [client-v2] Every compressed read fails on ClickHouse 26.9+: response reader is hardcoded to LZ4 but the server default codec is now ZSTD(3) #3105 proposed codec auto-detection from the self-describing frame; the PR replaces the negotiation mechanism entirely — reviewers should validate interop with older servers and proxies (e.g. intermediaries that strip/alter Accept-Encoding).
  • A reviewer (chernser) has already requested changes; that discussion should resolve before merge.

Required reviewer action

  • high — at least one human reviewer.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0ce58b0. Configure here.

@chernser chernser left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be no guessing:

  • we need to introduce compression algorithms property like it was in V1 and define what algorithms are available
  • by default we need to have lz4 set in headers correctly (this is needed for backward compatibility)
  • need documentation in migration guide for 0.11.0 and bold message in release notes.

zstd-jni should stay provided as before to not disrupt packaging (to avoid too many changes)

The response of a query was requested with the compress=1 framing of the HTTP
interface, whose codec the server chooses on its own. ClickHouse 26.9 changed
that codec from LZ4 to ZSTD(3) and the framed output follows the built-in
default with no setting to override it, so every compressed read failed with
'Invalid LZ4 magic byte'.

The algorithm is now part of the request: the new client.compression_algorithm
property names it out of a defined set, defaults to LZ4 for backward
compatibility, and is sent as the content coding of the operation, so a
compressed body always uses the algorithm the client asked for.

Fixes: #3105
Read the algorithm through a resolver, so a per-operation option set as the
name of an algorithm is accepted: a per-operation option is stored unparsed.
Add the typed setters QuerySettings#compressionAlgorithm and
InsertSettings#compressionAlgorithm.

Warn when a request is compressed without http compression and another
algorithm than LZ4 is selected: the ClickHouse framing of a request is LZ4.

Pin the request contract with a mock-server test: compress=1 is not requested,
a response is requested with the content coding of the algorithm, NONE
requests no compression, and an operation overrides the client.
@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Thanks - reworked along your four points. Pushed c8fd801e4.

1. Compression-algorithm property, no guessing. New CompressionAlgorithm enum defines the available
algorithms (LZ4, ZSTD, GZIP, NONE), each with its HTTP content coding, and the new property
client.compression_algorithm selects it (Client.Builder#compressionAlgorithm, plus per-operation
QuerySettings/InsertSettings setters). The response reader no longer inspects the block header - the earlier
codec detection and its tests are reverted.

2. LZ4 in the headers by default. The client now asks for a response with Accept-Encoding: <coding> +
enable_http_compression=1 and decodes exactly that coding; the default is LZ4, so an application that sets
nothing keeps reading LZ4 on every server version. compress=1 is not requested any more, because the codec of
that framing is the server's choice: on 26.9.1.954 it answers with the ZSTD method byte 0x90 and
network_compression_method=LZ4 does not change it (the server PR states the framed HTTP output has "no runtime
rollback"). CompressionRequestUnitTest pins the contract with a mock server: compress=1 absent, the coding of
the selected algorithm present, NONE requesting no compression.

3. Docs. Migration guide entry in docs/releases/0_11_0.md, a bold breaking-changes entry plus the bug-fix
entry in CHANGELOG.md, and docs/features.md. The migration guide also calls out the one behavioural caveat: a
profile with readonly = 1 rejects enable_http_compression=1 and needs readonly = 2 or
client.compression_algorithm = NONE.

4. Packaging untouched. Both pom changes are reverted: zstd-jni stays provided in clickhouse-jdbc and is
not a dependency of client-v2, so nothing extra is shaded. ZSTD needs the application to bring zstd-jni, which
the property javadoc and the docs state.

Verification: against 26.9.1.954 all four algorithm rows of the new integration test fail with
Invalid LZ4 magic byte: '-112' on the unpatched transport and pass with the fix; QueryServerContentCompressionTests
is 100/100 on 26.7.3.19, and on 26.9.1.954 the only failure is the pre-existing testSettingsNotChanged
(#3070/#3094). mvn -pl client-v2 test 676/676.

…eration

The client now seeds one more default setting, so the canary counts of
ClientTests, which the test itself asks to increment when a setting is added,
move to the new size. They were the whole failure of the client-v2 legs: the
failing module stopped before the JaCoCo merge of the coverage profile, which
reports the coverage of new code as zero.

Two paths of the new setting had no test: an insert that selects its own
algorithm, and a request compressed without http compression, whose framing
stays the ClickHouse one while the response still follows the algorithm.

The javadoc of httpHeader(String, String) is restored - the new method of
QuerySettings was inserted between the javadoc and its method.
@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

CI on c8fd801e is answered by d3413819.

Root cause of both reds — one failure, two symptoms. The client now seeds one more default setting (client.compression_algorithm), so the canary assertions of ClientTests.testDefaultSettings / testWithOldDefaults — which the test itself asks to increment when a setting is added — were one short. That is the whole failure of the 13 JDK legs and of the pinned client-v2 + CH 25.8 / + CH 26.3 legs (2 failures each, nothing else).

The SonarCloud "0.0% coverage on new code" gate has the same cause and needed no separate work: jacoco-merge and jacoco-merge-report of the coverage profile bind to the verify phase, after failsafe:verify. The failing module stopped before them, so no aggregate report was produced and every new line counted as uncovered.

Changes

  • ClientTests: the three counts move to the size the client now produces (38 / 39 / 38). The middle one was masked - TestNG stops the method at the first failing assertion.
  • CompressionRequestUnitTest: two paths of the new setting had no test - an insert that selects its own algorithm (Content-Encoding and Accept-Encoding of the upload follow InsertSettings), and a request compressed without http compression, whose framing stays the ClickHouse one (decompress=1, no Content-Encoding) while the response still follows the algorithm (Accept-Encoding, enable_http_compression=1, never compress=1).
  • QuerySettings: the javadoc of httpHeader(String, String) is restored - the new method was inserted between that javadoc and its method.

Verified in a devbox against a live server: client-v2 unit 678/678; ClientTests, QueryServerContentCompressionTests and QueryServerHttpCompressionTests green (200/200 for the two compression suites). Coverage of the new main-source lines measured with JaCoCo is 50/50 executable lines after this commit (47/50 before it).

Still red and pre-existing, not from this branch: HttpTransportTests.testMultiPartRequest, DataTypeTests.testAllDataTypesKnown, MetadataTests.testCreateTableWithAllDataTypes and testSettingsNotChanged on the CH latest legs (the same set is red on unrelated PRs, e.g. #3050), and openjdk JDK 11 (Maven Central transport).

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Merged current main (5e26cb75, which includes #3109) into this branch to clear the base conflict — mergeable is MERGEABLE again. No approval was dismissed (the PR is at CHANGES_REQUESTED).

The merge was textual only: main advanced in the same client-v2 compression area (#3109 improves the ClickHouseLZ4InputStream byte-count message and adds ClickHouseLZ4InputStreamTest), but this PR no longer touches that stream — the design rework requests the response with Accept-Encoding: <coding> + enable_http_compression=1 instead of compress=1. Only CHANGELOG.md overlapped; both entries are kept.

Re-verified against the merged base in a devbox (server latest):

  • mvn -pl client-v2 test — 679/679 green (678 ours + the new test from fix(client-v2): report LZ4 byte counts #3109).
  • QueryServerContentCompressionTests, QueryServerHttpCompressionTests, ClientTests — 234 run, the only failures being ClientTests.testAddSecureEndpoint, which needs the TLS endpoint the local devbox does not provide (green in CI). The default-settings canaries and all compression tests pass.

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Refreshed the branch against main (f9055179, which now carries #3110 and #3050).

git merge origin/main auto-merged — the only overlaps were CHANGELOG.md (both sets of entries kept) and docs/features.md (different lines). No source conflict: this PR no longer touches ClickHouseLZ4InputStream.

Re-verified on the merged base:

  • mvn -pl client-v2 test — 681/681 green.
  • QueryServerContentCompressionTests + QueryServerHttpCompressionTests — 200/200 green.

The merge commit changes the head, so an earlier review may need to be re-submitted.

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Base conflict resolved (textual only). main advanced to 060ff737 (merges of #2940 and #2956); merged it in with git merge origin/main — no history rewrite, no force-push. New head 17a102df.

Only overlap was CHANGELOG.md; both entry sets are kept. The merged work touches NativeFormatReader / RowBinaryFormatSerializer / BinaryStreamReader, none of which this PR changes.

Re-verified against the merged base (server latest):

  • mvn -pl client-v2 test → 681/681 green.
  • QueryServerContentCompressionTests + QueryServerHttpCompressionTests → 206/206 green.

@chernser the PR is still waiting on a re-review of the reworked design (explicit client.compression_algorithm property, LZ4 default in headers, docs, zstd-jni left provided).

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Rebased onto the current main (merge commit 96573beb, no history rewrite) — the PR was reported as conflicting after main advanced to 879a06e6 (merge of #3084, the configuration migration helpers).

Resolution was textual only: git merge-tree showed a clean merge locally, and git merge origin/main auto-merged. The only overlap was CHANGELOG.md, where both entry sets are kept (the 0.11.0-rc1 breaking entry of this PR is intact next to the new migration-helpers note). No source file of the compression path conflicted — this PR does not touch ClickHouseLZ4InputStream.

Re-verified against the merged base (server latest):

  • mvn -pl client-v2 test686/686 green (681 before the merge; the new base adds 5).
  • QueryServerContentCompressionTests + QueryServerHttpCompressionTests206/206 green.

The new migration-helpers module reads v2 property keys from ClientConfigProperties on the classpath, so the new client.compression_algorithm property is picked up without a change there.

@chernser this head is ready for your re-review — the four points of your review are implemented in c8fd801e (explicit CompressionAlgorithm property instead of codec detection, LZ4 default set in the headers, migration guide + release-note documentation, zstd-jni left provided).

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Refreshed the branch against main (fourth base-side refresh; main advanced with #3014, #3002 and the other merges of this evening).

  • git merge origin/main auto-merged with the ort strategy. The only overlap was CHANGELOG.md; both entry sets are kept and the 0.11.0-rc1 entries of this PR are intact. No conflict markers, no history rewrite, no force-push.
  • The merged work touches BinaryStreamReader, DataTypeTests and the jdbc-v2 SQL parser — none of which this PR changes. The net diff of this PR is unchanged (13 files, no pom.xml touched, zstd-jni still provided).

Re-verified against the merged base:

  • mvn -pl client-v2 test → 686/686 green.
  • QueryServerContentCompressionTests + QueryServerHttpCompressionTests → 206/206 green.

@chernser this head is still waiting for your re-review — the four points of your review are implemented (explicit client.compression_algorithm property with an LZ4 default set in the request headers, no codec guessing, migration guide + release notes, zstd-jni left provided).

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Resolved a base-side conflict with main (advanced to 9f40968e3). Merged origin/main into the branch (merge commit a494991b0, no history rewrite, no force-push). The only overlap was CHANGELOG.md; both entry sets are kept and the 0.11.0-rc1 breaking-change entry is intact. The net diff is unchanged (13 files).

Re-verified against the merged base on a latest server:

  • mvn -pl client-v2 test -> 686/686 pass
  • -Dit.test=QueryServerContentCompressionTests,QueryServerHttpCompressionTests -> 206/206 pass

@chernser this head is ready for a re-review — your earlier comments are addressed by c8fd801e + d3413819.

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Rebased onto current main (merge commit fc681772c, no history rewrite). The conflict was again only the CHANGELOG.md top-of-file overlap; both entry sets are kept. The merged work touches the jdbc-v2 SqlParserFacade only, which this PR does not change.

Re-verified against the merged base (ClickHouse latest server):

  • mvn -pl client-v2 test -> 686/686 pass
  • -Dit.test=QueryServerContentCompressionTests,QueryServerHttpCompressionTests -> 206/206 pass

On the red Java client ( client-v2 ) + CH latest leg: the same five failures are present on main itself (run 34432412080, job 102731126398, head 11cc7797, without this PR): HttpTransportTests.testMultiPartRequest (server Code: 618 ... LZ4 decompression failed ... ERROR_frameType_unknown) and the four testSettingsNotChanged expected [JSONEachRow] but found [RowBinaryWithNamesAndTypes] assertions. They are pre-existing on the latest server image and not caused by this change.

@chernser this head is ready for a re-review; the earlier review comments were addressed in c8fd801e + d3413819.

@chernser chernser left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is still a failure related to the LZ4

[ERROR] com.clickhouse.client.HttpTransportTests.testMultiPartRequest -- Time elapsed: 0.033 s <<< FAILURE!
com.clickhouse.client.api.ClientException: Failed to get query response
at com.clickhouse.client.api.Client.queryAll(Client.java:2194)
at com.clickhouse.client.api.Client.queryAll(Client.java:2203)
at com.clickhouse.client.HttpTransportTests.testMultiPartRequest(HttpTransportTests.java:1788)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:136)
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:658)
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:219)
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:923)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:192)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:808)
at org.testng.TestRunner.run(TestRunner.java:603)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
at org.testng.SuiteRunner.run(SuiteRunner.java:326)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
at org.testng.TestNG.runSuites(TestNG.java:1092)
at org.testng.TestNG.run(TestNG.java:1060)
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:155)
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:169)
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:88)
at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:137)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Caused by: com.clickhouse.client.api.ServerException: Code: 618. DB::Exception: LZ4 decompression failed. LZ4F version: 100. Error: ERROR_frameType_unknown. (LZ4_DECODER_FAILED) (version 26.8.2.7 (official build)) (queryId= )

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

@chernser Thank you for looking again. I checked the testMultiPartRequest failure against main before answering: it is not caused by this PR, and it is not the read path this PR changes. It is a separate, already-filed request-side bug, #3075.

1. The failure is present on main with no diff at all.

main Build run 34433728139 (job 102734987718, Java client ( client-v2 ) + CH latest) runs commit 1b0ad7ee — which is exactly the base this branch is merged with — and fails with the same set:

[ERROR] Tests run: 975, Failures: 5, Errors: 0
[ERROR] com.clickhouse.client.HttpTransportTests.testMultiPartRequest <<< FAILURE!
Caused by: com.clickhouse.client.api.ServerException: Code: 618. DB::Exception: LZ4 decompression failed.
LZ4F version: 100. Error: ERROR_frameType_unknown. (LZ4_DECODER_FAILED) (version 26.8.2.7 (official build))
[ERROR] com.clickhouse.client.query.BinaryReadyReusesBuffersTests.testSettingsNotChanged <<< FAILURE!
[ERROR] com.clickhouse.client.query.QueryTests.testSettingsNotChanged <<< FAILURE!
[ERROR] com.clickhouse.client.query.QueryServerContentCompressionTests.testSettingsNotChanged <<< FAILURE!
[ERROR] com.clickhouse.client.query.QueryServerHttpCompressionTests.testSettingsNotChanged <<< FAILURE!

The PR's own run 34433980294 (job 102735733671) reports the identical five failures. The only difference is the test count — 979 here against 975 on main, i.e. the four tests this PR adds, all passing. Every client-v2 leg on CH 25.8 and 26.3 is green on both.

2. Why it is a different bug — request path, not response path.

Error 618 is raised by the server while it decompresses the request body we uploaded. This PR changes how a response is requested and read. The two directions do not meet.

The cause is filed as #3075: on the multipart path (HTTP_SEND_PARAMS_IN_BODY=true) the client attaches the body without wrapRequestEntity(...) — so the body is plain — but still sends Content-Encoding: lz4. The request has always been self-contradictory; servers up to 26.3 ignored Content-Encoding on multipart/form-data, 26.8 honours it and rejects the body. It reproduces with curl and no client at all:

curl -H 'Content-Encoding: lz4' -F 'query=SELECT 1' 'http://server:8123/?enable_http_compression=1'   # 618 on 26.8+, OK on <= 26.3
curl -F 'query=SELECT 1' 'http://server:8123/?enable_http_compression=1'                              # OK everywhere

The other four reds (testSettingsNotChanged, expected [JSONEachRow] but found [RowBinaryWithNamesAndTypes]) are the X-ClickHouse-Format precedence bug, #3070 / #3094 — also present on main, also unrelated to this diff.

3. How would you like #3075 handled?

The fix is small and lives in the same file (drop Content-Encoding on the multipart path, since that path deliberately does not compress). I kept it out of this PR to keep one fix per PR. Tell me which you prefer and I will do it right away:

4. Your earlier review is addressed on this head (ea26a32b).

  • No guessing: the codec is now an explicit property, client.compression_algorithm (Client.Builder#compressionAlgorithm, plus per-operation QuerySettings/InsertSettings), with the CompressionAlgorithm enum defining what is available — LZ4, ZSTD, GZIP, NONE.
  • Backward compatible default: LZ4. The algorithm is requested with Accept-Encoding / Content-Encoding, so a compressed body uses the algorithm we asked for on every server version instead of the codec the server picks for compress=1.
  • Migration guide: docs/releases/0_11_0.md and docs/features.md are updated, and the breaking change is in CHANGELOG.md.

Ready for another look when you have a moment.

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Base-side merge conflict resolved (again) — main advanced under the open PR.

  • Head ea26a32ba07ed99800 (merge commit; no history rewrite, no force-push).
  • mergeable back to MERGEABLE.
  • Resolution was textual only: git merge origin/main auto-merged with ort, and the sole overlap was CHANGELOG.md. Both entry sets were kept; no conflict markers remain and the 0.11.0-rc1 entry for this change is intact.
  • Net diff versus main is unchanged: 12 files, all client-v2 plus CHANGELOG.md and the two docs pages. No pom.xml touched.

Re-verified against the merged base (server image latest):

  • mvn -pl client-v2 test688/688 pass.
  • -Dit.test=QueryServerContentCompressionTests,QueryServerHttpCompressionTests208/208 pass.

Note: the merged base now includes #3101 (default-format fix), which is the root cause of the four pre-existing testSettingsNotChanged failures on the CH latest leg. Those should clear on this run.

@chernser this head is ready for re-review. The open question from my previous comment stands: do you want the #3075 multipart Content-Encoding fix in this PR, or as its own PR?

…9/40/39

main bumped the same canary constants to 38/39/38 for a default property
added on its side. The two changes are textually identical, so the merge
kept one copy while both properties exist, leaving the expectation one
short of the real configuration size.
@polyglotAI-bot

Copy link
Copy Markdown
Collaborator Author

Pushed b776b5d4 — fixes the CI red on every JDK leg and on the client-v2 integration legs.

Cause: the ClientTests default-settings canaries (config.size()) were bumped on this branch to 38 / 39 / 38 for the new client.compression_algorithm property. main then bumped the same three constants to the same values for a default property added on its side. The two edits are textually identical, so git merge kept a single copy while both properties exist — the expectation ended one short of the real size.

Change: test constants only, 38/39/38 → 39/40/39. No production code touched.

Verified in a devbox against the merged base (server latest):

  • ClientTests — both canary tests pass; the only remaining failure is testAddSecureEndpoint, a devbox-only TLS-endpoint limitation that is green in CI.
  • mvn -pl client-v2 test — 688/688 green.

@chernser the re-review of this head is still outstanding, and the open question from my previous comment stands: should the #3075 multipart Content-Encoding fix go into this PR (it would turn the CH latest leg green here) or land as its own PR? It is kept out for now, one fix per PR.

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[client-v2] Every compressed read fails on ClickHouse 26.9+: response reader is hardcoded to LZ4 but the server default codec is now ZSTD(3)

2 participants