Skip to content

Conversation

@chernser
Copy link
Contributor

@chernser chernser commented Sep 25, 2025

Summary

  • Fixes issues reading data from JSON columns with nested arrays of object or other multi-level nested objects

Closes #2598
Closes #2593
Closes #2102
Closes #2613

Checklist

Delete items not relevant to your PR:

@github-actions
Copy link

github-actions bot commented Sep 25, 2025

Client V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.client.api 84.35% 771 914
com.clickhouse.client.api.command 50.00% 8 16
com.clickhouse.client.api.data_formats 39.54% 138 349
com.clickhouse.client.api.data_formats.internal 75.43% 1406 1864
com.clickhouse.client.api.enums 100.00% 5 5
com.clickhouse.client.api.http 0.00% 1
com.clickhouse.client.api.insert 85.37% 70 82
com.clickhouse.client.api.internal 78.47% 820 1045
com.clickhouse.client.api.metadata 85.42% 41 48
com.clickhouse.client.api.metrics 93.75% 75 80
com.clickhouse.client.api.query 78.99% 109 138
com.clickhouse.client.api.serde 84.21% 48 57
com.clickhouse.client.api.sql 87.50% 28 32
com.clickhouse.client.api.transport 83.33% 10 12
Class Coverage
Class Coverage Lines Covered Total Lines
com.clickhouse.client.api.ClickHouseException 62.50% 5 8
com.clickhouse.client.api.Client 84.54% 361 427
com.clickhouse.client.api.Client.Builder 79.70% 161 202
com.clickhouse.client.api.Client.new DataStreamWriter() {...} 100.00% 8 8
com.clickhouse.client.api.ClientConfigProperties 93.48% 172 184
com.clickhouse.client.api.ClientConfigProperties.new ClientConfigProperties() {...} 100.00% 8 8
com.clickhouse.client.api.ClientException 100.00% 4 4
com.clickhouse.client.api.ClientFaultCause 100.00% 7 7
com.clickhouse.client.api.ClientMisconfigurationException 100.00% 4 4
com.clickhouse.client.api.command.CommandResponse 46.67% 7 15
com.clickhouse.client.api.command.CommandSettings 100.00% 1 1
com.clickhouse.client.api.ConnectionInitiationException 50.00% 3 6
com.clickhouse.client.api.ConnectionReuseStrategy 100.00% 3 3
com.clickhouse.client.api.data_formats.internal.AbstractBinaryFormatReader 73.45% 202 275
com.clickhouse.client.api.data_formats.internal.AbstractBinaryFormatReader.RecordWrapper 50.00% 17 34
com.clickhouse.client.api.data_formats.internal.BinaryReaderBackedRecord 13.75% 11 80
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader 85.99% 362 421
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.ArrayValue 78.95% 30 38
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 77.78% 7 9
com.clickhouse.client.api.data_formats.internal.InetAddressConverter 66.67% 18 27
com.clickhouse.client.api.data_formats.internal.MapBackedRecord 37.30% 47 126
com.clickhouse.client.api.data_formats.internal.NumberConverter 86.81% 79 91
com.clickhouse.client.api.data_formats.internal.NumberConverter.NumberType 100.00% 7 7
com.clickhouse.client.api.data_formats.internal.ProcessParser 80.00% 32 40
com.clickhouse.client.api.data_formats.internal.SerializerUtils 82.65% 581 703
com.clickhouse.client.api.data_formats.internal.SerializerUtils.DynamicClassLoader 100.00% 3 3
com.clickhouse.client.api.data_formats.NativeFormatReader 80.77% 42 52
com.clickhouse.client.api.data_formats.NativeFormatReader.Block 66.67% 12 18
com.clickhouse.client.api.data_formats.RowBinaryFormatReader 15.79% 3 19
com.clickhouse.client.api.data_formats.RowBinaryFormatSerializer 19.09% 21 110
com.clickhouse.client.api.data_formats.RowBinaryFormatWriter 27.84% 27 97
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 90.91% 20 22
com.clickhouse.client.api.data_formats.RowBinaryWithNamesFormatReader 56.52% 13 23
com.clickhouse.client.api.DataStreamWriter 0.00% 1
com.clickhouse.client.api.DataTransferException 50.00% 2 4
com.clickhouse.client.api.DataTypeUtils 62.86% 22 35
com.clickhouse.client.api.enums.Protocol 100.00% 2 2
com.clickhouse.client.api.enums.ProxyType 100.00% 3 3
com.clickhouse.client.api.http.ClickHouseHttpProto 0.00% 1
com.clickhouse.client.api.insert.InsertResponse 58.33% 7 12
com.clickhouse.client.api.insert.InsertSettings 90.00% 63 70
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 85.33% 64 75
com.clickhouse.client.api.internal.ClickHouseLZ4OutputStream 92.31% 60 65
com.clickhouse.client.api.internal.ClientStatisticsHolder 50.00% 7 14
com.clickhouse.client.api.internal.CommonSettings 96.00% 48 50
com.clickhouse.client.api.internal.DataTypeConverter 85.71% 96 112
com.clickhouse.client.api.internal.DataTypeConverter.ArrayAsStringWriter 100.00% 16 16
com.clickhouse.client.api.internal.DataTypeConverter.ListAsStringWriter 100.00% 14 14
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 86.25% 345 400
com.clickhouse.client.api.internal.HttpAPIClientHelper.CustomSSLConnectionFactory 0.00% 9
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.LZ4Entity 86.84% 33 38
com.clickhouse.client.api.internal.MapUtils 35.48% 22 62
com.clickhouse.client.api.internal.ServerSettings 0.00% 1
com.clickhouse.client.api.internal.StopWatch 66.67% 10 15
com.clickhouse.client.api.internal.TableSchemaParser 85.71% 18 21
com.clickhouse.client.api.internal.ValidationUtils 35.00% 7 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 84.85% 28 33
com.clickhouse.client.api.metrics.ClientMetrics 100.00% 7 7
com.clickhouse.client.api.metrics.MicrometerLoader 90.91% 40 44
com.clickhouse.client.api.metrics.OperationMetrics 94.12% 16 17
com.clickhouse.client.api.metrics.ServerMetrics 100.00% 12 12
com.clickhouse.client.api.query.NullValueException 50.00% 2 4
com.clickhouse.client.api.query.QueryResponse 66.67% 24 36
com.clickhouse.client.api.query.QuerySettings 95.59% 65 68
com.clickhouse.client.api.query.QueryStatement 0.00% 4
com.clickhouse.client.api.query.Records 61.90% 13 21
com.clickhouse.client.api.query.Records.new Iterator() {...} 100.00% 5 5
com.clickhouse.client.api.serde.DataSerializationException 0.00% 6
com.clickhouse.client.api.serde.POJOSerDe 97.96% 48 49
com.clickhouse.client.api.serde.SerializerNotFoundException 0.00% 2
com.clickhouse.client.api.ServerException 84.62% 11 13
com.clickhouse.client.api.sql.SQLUtils 87.50% 28 32
com.clickhouse.client.api.transport.HttpEndpoint 83.33% 10 12

@github-actions
Copy link

github-actions bot commented Sep 29, 2025

JDBC V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.data 19.23% 5 26
com.clickhouse.jdbc 80.76% 1587 1965
com.clickhouse.jdbc.internal 34.16% 4193 12273
com.clickhouse.jdbc.metadata 48.09% 201 418
com.clickhouse.jdbc.types 88.89% 48 54
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 88.54% 224 253
com.clickhouse.jdbc.DataSourceImpl 96.15% 25 26
com.clickhouse.jdbc.Driver 79.17% 38 48
com.clickhouse.jdbc.Driver.FrameworksDetection 90.91% 10 11
com.clickhouse.jdbc.DriverProperties 94.44% 17 18
com.clickhouse.jdbc.internal.ClickHouseLexer 77.78% 28 36
com.clickhouse.jdbc.internal.ClickHouseParser 32.05% 2380 7426
com.clickhouse.jdbc.internal.ClickHouseParser.AliasContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParser.AlterPrivilegeContext 0.00% 44
com.clickhouse.jdbc.internal.ClickHouseParser.AlterStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseAddColumnContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseAddIndexContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseAddProjectionContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseAttachContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseClearColumnContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseClearIndexContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseClearProjectionContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseCommentContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseDeleteContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseDetachContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseDropColumnContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseDropIndexContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseDropPartitionContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseDropProjectionContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseFreezePartitionContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseMaterializeIndexContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseMaterializeProjectionContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseModifyCodecContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseModifyCommentContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseModifyContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseModifyOrderByContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseModifyRemoveContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseModifyTTLContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseMovePartitionContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseRemoveTTLContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseRenameContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseReplaceContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableClauseUpdateContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.AlterTableStmtContext 38.46% 5 13
com.clickhouse.jdbc.internal.ClickHouseParser.ArrayJoinClauseContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.AssignmentExprContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.AssignmentExprListContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.AssignmentValueContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.AssignmentValuesContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.AssignmentValuesEmptyContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.AssignmentValuesListContext 45.45% 5 11
com.clickhouse.jdbc.internal.ClickHouseParser.AttachDictionaryStmtContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.AttachStmtContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.CheckStmtContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.ClusterClauseContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.CodecArgExprContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.CodecExprContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnAliasesContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnArgExprContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnArgListContext 46.15% 6 13
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprAliasContext 55.56% 5 9
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprAndContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprArrayAccessContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprArrayContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprAsteriskContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprBetweenContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprCaseContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprCast2Context 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprCastContext 45.45% 5 11
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprDateContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprExtractContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprFunctionContext 38.46% 5 13
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprIdentifierContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprIntervalContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprIsNullContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprLiteralContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprNegateContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprNotContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprOrContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprParamContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprParensContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprPrecedence1Context 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprPrecedence2Context 50.00% 5 10
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprPrecedence3Context 26.32% 5 19
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprRegexpContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprSubqueryContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprSubstringContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprTernaryOpContext 55.56% 5 9
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprTimestampContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprTrimContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprTupleAccessContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprTupleContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprWinFunctionContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprWinFunctionTargetContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnIdentifierContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnLambdaExprContext 40.00% 6 15
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnsClauseContext 53.85% 7 13
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnsExprAsteriskContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnsExprColumnContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnsExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnsExprSubqueryContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnTypeExprComplexContext 41.67% 5 12
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnTypeExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnTypeExprEnumContext 41.67% 5 12
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnTypeExprNestedContext 38.46% 5 13
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnTypeExprParamContext 55.56% 5 9
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnTypeExprSimpleContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.CreateDatabaseStmtContext 35.71% 5 14
com.clickhouse.jdbc.internal.ClickHouseParser.CreateDictionaryStmtContext 0.00% 18
com.clickhouse.jdbc.internal.ClickHouseParser.CreateLiveViewStmtContext 0.00% 21
com.clickhouse.jdbc.internal.ClickHouseParser.CreateMaterializedViewStmtContext 0.00% 20
com.clickhouse.jdbc.internal.ClickHouseParser.CreatePolicyStmtContext 17.24% 5 29
com.clickhouse.jdbc.internal.ClickHouseParser.CreatePrivilegeContext 0.00% 24
com.clickhouse.jdbc.internal.ClickHouseParser.CreateRoleStmtContext 26.32% 5 19
com.clickhouse.jdbc.internal.ClickHouseParser.CreateStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.CreateTableStmtContext 25.00% 5 20
com.clickhouse.jdbc.internal.ClickHouseParser.CreateUserStmtContext 17.86% 5 28
com.clickhouse.jdbc.internal.ClickHouseParser.CreateViewStmtContext 0.00% 18
com.clickhouse.jdbc.internal.ClickHouseParser.CtesContext 37.50% 6 16
com.clickhouse.jdbc.internal.ClickHouseParser.CteUnboundColContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.CteUnboundColExprContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.CteUnboundColLiteralContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.CteUnboundColParamContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.CteUnboundNestedSelectContext 45.45% 5 11
com.clickhouse.jdbc.internal.ClickHouseParser.DatabaseIdentifierContext 75.00% 6 8
com.clickhouse.jdbc.internal.ClickHouseParser.DataClauseContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.DataClauseFormatContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.DataClauseSelectContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.DataClauseValuesContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.DescribeStmtContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.DestinationClauseContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.DictionaryArgExprContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.DictionaryAttrDfntContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.DictionaryEngineClauseContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.DictionaryPrimaryKeyClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.DictionarySchemaClauseContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.DictionarySettingsClauseContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.DropDatabaseStmtContext 41.67% 5 12
com.clickhouse.jdbc.internal.ClickHouseParser.DropPrivilegeContext 0.00% 24
com.clickhouse.jdbc.internal.ClickHouseParser.DropStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.DropTableStmtContext 26.32% 5 19
com.clickhouse.jdbc.internal.ClickHouseParser.EngineClauseContext 75.00% 6 8
com.clickhouse.jdbc.internal.ClickHouseParser.EngineExprContext 46.15% 6 13
com.clickhouse.jdbc.internal.ClickHouseParser.EnumValueContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.ExistsDatabaseStmtContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.ExistsStmtContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.ExistsTableStmtContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.ExplainASTStmtContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.ExplainStmtContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.ExplainSyntaxStmtContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.FloatingLiteralContext 50.00% 6 12
com.clickhouse.jdbc.internal.ClickHouseParser.FrameBetweenContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.FrameStartContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.FromClauseContext 41.18% 7 17
com.clickhouse.jdbc.internal.ClickHouseParser.GrantStmtContext 25.00% 6 24
com.clickhouse.jdbc.internal.ClickHouseParser.GrantTableIdentifierContext 50.00% 6 12
com.clickhouse.jdbc.internal.ClickHouseParser.GroupByClauseContext 42.86% 6 14
com.clickhouse.jdbc.internal.ClickHouseParser.HavingClauseContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.IdentifierContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.IdentifierOrNullContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParser.InserParameterExprContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.InsertParameterContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.InsertParameterFuncExprContext 55.56% 5 9
com.clickhouse.jdbc.internal.ClickHouseParser.InsertRawValueContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.InsertStmtContext 53.33% 8 15
com.clickhouse.jdbc.internal.ClickHouseParser.IntervalContext 40.00% 6 15
com.clickhouse.jdbc.internal.ClickHouseParser.JoinConstraintClauseContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.JoinExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.JoinExprCrossOpContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.JoinExprOpContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.JoinExprParensContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.JoinExprTableContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.JoinOpContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.JoinOpCrossContext 50.00% 6 12
com.clickhouse.jdbc.internal.ClickHouseParser.JoinOpFullContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.JoinOpInnerContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.JoinOpLeftRightContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.KeywordContext 3.17% 6 189
com.clickhouse.jdbc.internal.ClickHouseParser.KeywordForAliasContext 21.43% 6 28
com.clickhouse.jdbc.internal.ClickHouseParser.KillMutationStmtContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.KillStmtContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.LayoutClauseContext 0.00% 15
com.clickhouse.jdbc.internal.ClickHouseParser.LifetimeClauseContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.LimitByClauseContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.LimitClauseContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.LimitExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.LiteralContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.NamedQueryContext 46.15% 6 13
com.clickhouse.jdbc.internal.ClickHouseParser.NestedIdentifierContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.NumberLiteralContext 40.00% 6 15
com.clickhouse.jdbc.internal.ClickHouseParser.OptimizeStmtContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.OrderByClauseContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.OrderExprContext 37.50% 6 16
com.clickhouse.jdbc.internal.ClickHouseParser.OrderExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.PartitionByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.PartitionClauseContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.PrewhereClauseContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.PrimaryKeyClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.PrivilegeContext 13.64% 6 44
com.clickhouse.jdbc.internal.ClickHouseParser.ProjectionOrderByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.ProjectionSelectStmtContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.QueryContext 34.48% 10 29
com.clickhouse.jdbc.internal.ClickHouseParser.QueryStmtContext 46.67% 7 15
com.clickhouse.jdbc.internal.ClickHouseParser.RangeClauseContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.RatioExprContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.RenameStmtContext 0.00% 16
com.clickhouse.jdbc.internal.ClickHouseParser.SampleByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.SampleClauseContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.SchemaAsFunctionClauseContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.SchemaAsTableClauseContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.SchemaDescriptionClauseContext 45.45% 5 11
com.clickhouse.jdbc.internal.ClickHouseParser.SelectStmtContext 21.43% 6 28
com.clickhouse.jdbc.internal.ClickHouseParser.SelectStmtWithParensContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.SelectUnionStmtContext 40.00% 6 15
com.clickhouse.jdbc.internal.ClickHouseParser.SetRolesListContext 63.64% 7 11
com.clickhouse.jdbc.internal.ClickHouseParser.SetRoleStmtContext 38.10% 8 21
com.clickhouse.jdbc.internal.ClickHouseParser.SetStmtContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParser.SettingExprContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.SettingExprListContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.SettingsClauseContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ShowCreateDatabaseStmtContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ShowCreateDictionaryStmtContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ShowCreateTableStmtContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.ShowDatabasesStmtContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.ShowDictionariesStmtContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ShowPrivilegeContext 0.00% 25
com.clickhouse.jdbc.internal.ClickHouseParser.ShowStmtContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.ShowTablesStmtContext 33.33% 5 15
com.clickhouse.jdbc.internal.ClickHouseParser.SourceClauseContext 0.00% 15
com.clickhouse.jdbc.internal.ClickHouseParser.SourcePrivilegeContext 0.00% 25
com.clickhouse.jdbc.internal.ClickHouseParser.SubqueryClauseContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.SystemPrivilegeContext 0.00% 81
com.clickhouse.jdbc.internal.ClickHouseParser.SystemStmtContext 25.00% 6 24
com.clickhouse.jdbc.internal.ClickHouseParser.TableArgExprContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.TableArgListContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.TableColumnDfntContext 40.00% 6 15
com.clickhouse.jdbc.internal.ClickHouseParser.TableColumnPropertyExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.TableColumnPropertyTypeContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.TableElementExprColumnContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.TableElementExprConstraintContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.TableElementExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.TableElementExprIndexContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.TableElementExprProjectionContext 0.00% 7
com.clickhouse.jdbc.internal.ClickHouseParser.TableExprAliasContext 55.56% 5 9
com.clickhouse.jdbc.internal.ClickHouseParser.TableExprContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.TableExprFunctionContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.TableExprIdentifierContext 100.00% 6 6
com.clickhouse.jdbc.internal.ClickHouseParser.TableExprSubqueryContext 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.TableFunctionExprContext 54.55% 6 11
com.clickhouse.jdbc.internal.ClickHouseParser.TableIdentifierContext 60.00% 6 10
com.clickhouse.jdbc.internal.ClickHouseParser.TableIndexDfntContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.TableProjectionDfntContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.TableSchemaClauseContext 83.33% 5 6
com.clickhouse.jdbc.internal.ClickHouseParser.TopClauseContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.TruncateStmtContext 42.86% 6 14
com.clickhouse.jdbc.internal.ClickHouseParser.TtlClauseContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.TtlExprContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.UserCreateGranteesClauseContext 0.00% 19
com.clickhouse.jdbc.internal.ClickHouseParser.UserCreateHostClauseContext 0.00% 14
com.clickhouse.jdbc.internal.ClickHouseParser.UserCreateHostDefContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.UserIdentifiedClauseContext 27.27% 6 22
com.clickhouse.jdbc.internal.ClickHouseParser.UserIdentifiedWithClauseContext 17.14% 6 35
com.clickhouse.jdbc.internal.ClickHouseParser.UserIdentifierContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParser.UseStmtContext 77.78% 7 9
com.clickhouse.jdbc.internal.ClickHouseParser.UuidClauseContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.ValidUntilClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.ViewParamContext 63.64% 7 11
com.clickhouse.jdbc.internal.ClickHouseParser.WatchStmtContext 0.00% 12
com.clickhouse.jdbc.internal.ClickHouseParser.WhereClauseContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParser.WindowClauseContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.WindowExprContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.WinFrameBoundContext 0.00% 13
com.clickhouse.jdbc.internal.ClickHouseParser.WinFrameClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.WinFrameExtendContext 0.00% 6
com.clickhouse.jdbc.internal.ClickHouseParser.WinOrderByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.WinPartitionByClauseContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.WithClauseContext 66.67% 6 9
com.clickhouse.jdbc.internal.ClickHouseParserBaseListener 44.67% 222 497
com.clickhouse.jdbc.internal.DetachedResultSet 80.39% 332 413
com.clickhouse.jdbc.internal.ExceptionUtils 69.57% 16 23
com.clickhouse.jdbc.internal.FeatureManager 100.00% 8 8
com.clickhouse.jdbc.internal.JdbcConfiguration 93.75% 135 144
com.clickhouse.jdbc.internal.JdbcUtils 77.62% 215 277
com.clickhouse.jdbc.internal.ParsedPreparedStatement 87.00% 87 100
com.clickhouse.jdbc.internal.ParsedStatement 81.58% 31 38
com.clickhouse.jdbc.internal.SqlParser 100.00% 16 16
com.clickhouse.jdbc.internal.SqlParser.ParserErrorListener 100.00% 2 2
com.clickhouse.jdbc.JdbcV2Wrapper 100.00% 4 4
com.clickhouse.jdbc.metadata.DatabaseMetaDataImpl 37.46% 130 347
com.clickhouse.jdbc.metadata.ParameterMetaDataImpl 100.00% 23 23
com.clickhouse.jdbc.metadata.ResultSetMetaDataImpl 100.00% 48 48
com.clickhouse.jdbc.PreparedStatementImpl 82.81% 419 506
com.clickhouse.jdbc.PreparedStatementImpl.ArrayProcessingCursor 100.00% 7 7
com.clickhouse.jdbc.ResultSetImpl 84.51% 513 607
com.clickhouse.jdbc.StatementImpl 94.34% 250 265
com.clickhouse.jdbc.types.Array 86.96% 40 46
com.clickhouse.jdbc.types.Struct 100.00% 8 8
com.clickhouse.jdbc.WriterStatementImpl 32.69% 68 208

@github-actions
Copy link

JDBC V1 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.jdbc 34.84% 930 2669
com.clickhouse.jdbc.internal 63.53% 1336 2103
com.clickhouse.jdbc.parser 69.35% 4556 6570
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 66.61% 375 563
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 33.57% 47 140
com.clickhouse.jdbc.JdbcTypeMapping.AnsiTypeMapping 17.39% 20 115
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.85% 2816 4090
com.clickhouse.jdbc.parser.ClickHouseSqlParserConstants 100.00% 1 1
com.clickhouse.jdbc.parser.ClickHouseSqlParserTokenManager 76.47% 1456 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
Copy link

Client V1 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.client 51.93% 2108 4059
com.clickhouse.client.config 70.57% 199 282
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 10.87% 30 276
com.clickhouse.client.ClickHouseClientBuilder 62.65% 52 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 41.67% 5 12
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 54.40% 204 375
com.clickhouse.client.ClickHouseNodeSelector 89.77% 79 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.84% 330 591
com.clickhouse.client.ClickHouseRequest.Mutation 83.33% 90 108
com.clickhouse.client.ClickHouseRequest.PipedWriter 100.00% 7 7
com.clickhouse.client.ClickHouseRequestManager 0.00% 22
com.clickhouse.client.ClickHouseRequestManager.InstanceHolder 0.00% 2
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 24.69% 20 81
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

@chernser chernser marked this pull request as ready for review September 29, 2025 23:14
Copy link
Contributor

@windsurf-bot windsurf-bot bot left a comment

Choose a reason for hiding this comment

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

Other comments (2)

💡 To request another review, post a new comment with "/windsurf-review".

@chernser chernser requested a review from Copilot September 30, 2025 01:38
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request fixes issues reading data from JSON columns with nested arrays of objects or other multi-level nested objects in both the Client-V2 and JDBC components.

  • Resolves problems with serialization and deserialization of complex JSON structures containing nested arrays
  • Updates dynamic type handling for better support of nested data structures
  • Adds comprehensive test coverage for various JSON nested array scenarios

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
jdbc-v2/src/test/java/com/clickhouse/jdbc/JdbcIntegrationTest.java Modified test infrastructure methods to throw exceptions instead of returning booleans
jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java Added comprehensive JSON nested array tests and fixed timezone handling in time tests
client-v2/src/test/java/com/clickhouse/client/datatypes/DataTypeTests.java Added extensive dynamic type tests for nested structures, JSON, and variant types
client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/SerializerUtils.java Fixed Time64 serialization calculation and improved dynamic type tag handling
client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/BinaryStreamReader.java Comprehensive refactoring of dynamic data reading with proper handling of all data types
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataType.java Removed binary tags from geometric types and cleaned up imports

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@mshustov mshustov requested a review from mzitnik September 30, 2025 07:33
Copy link
Contributor

@mzitnik mzitnik left a comment

Choose a reason for hiding this comment

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

Also we did a lot of work related to other types do we have a good test coverage for that?

}
return ClickHouseColumn.of("v", type, false, 0, 0);
case JSON: {
byte serializationVersion = readByte();
Copy link
Contributor

Choose a reason for hiding this comment

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

serializationVersion not in use? Seems to be redundant, or any other plans?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I need to figure out. but seems not in use.

}
case Nested: {
int size = readVarInt(input);
StringBuilder nested = new StringBuilder();
Copy link
Contributor

Choose a reason for hiding this comment

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

Since we have estimated size can we init with StringBuilder with size

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it will be a guessing. Default size of StringBuilder is 16 chars.
So I think we may define int DEFAULT_STRING_BUILDER_SIZE = 100 should be good.
Here is an example of tuple definition with total length of 103 chars/bytes:

Tuple(productId Int32, name String, price Float32, added Date, removed Date, storeId UUID, flags UInt8)

May be we need to make it configurable or may be add some metric first.


assertTrue(rs.next());
Object jsonObj = rs.getObject(1);
assertTrue(rs.next());
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we test the content?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes.
I was relying on tests in the client, but here is another story.
Will add checks.

createProperties.put(ClientConfigProperties.serverSetting("allow_experimental_time_time64_type"), "1");
runQuery("CREATE TABLE test_time64 (order Int8, "
+ "time Time('UTC'), time64 Time64(9) "
+ "time Time, time64 Time64(9) "
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is the fix for falling tests on latest.

@chernser
Copy link
Contributor Author

chernser commented Sep 30, 2025

Also we did a lot of work related to other types do we have a good test coverage for that?

We had tests for other types. These changes are more code rearrangement to optimize multiple if-else
I will add more tests.
I have another initiative to somehow unify datatype tests for client itself and jdbc so we can use same set of datasets and queries to test against different classes.

@chernser chernser requested a review from mzitnik October 1, 2025 17:01
@sonarqubecloud
Copy link

sonarqubecloud bot commented Oct 1, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
62.6% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@chernser chernser merged commit 6a4127c into main Oct 1, 2025
38 of 41 checks passed
@chernser chernser deleted the fix_json_issues_093 branch October 1, 2025 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants