Skip to content

[jdbc-v2] Fix statement impl #2471

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open

[jdbc-v2] Fix statement impl #2471

wants to merge 11 commits into from

Conversation

chernser
Copy link
Contributor

@chernser chernser commented Jun 25, 2025

Summary

Closes #2414

Checklist

Delete items not relevant to your PR:

  • Closes #
  • Unit and integration tests covering the common scenarios were added
  • A human-readable description of the changes was provided to include in CHANGELOG
  • For significant changes, documentation in https://github.com/ClickHouse/clickhouse-docs was updated with further explanations or tutorials

Copy link

github-actions bot commented Jul 12, 2025

Client V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.client.api 84.44% 738 874
com.clickhouse.client.api.command 50.00% 8 16
com.clickhouse.client.api.data_formats 38.97% 136 349
com.clickhouse.client.api.data_formats.internal 59.80% 1086 1816
com.clickhouse.client.api.enums 100.00% 5 5
com.clickhouse.client.api.http 0.00% 1
com.clickhouse.client.api.insert 70.83% 51 72
com.clickhouse.client.api.internal 74.48% 572 768
com.clickhouse.client.api.metadata 85.42% 41 48
com.clickhouse.client.api.metrics 93.75% 75 80
com.clickhouse.client.api.query 59.42% 82 138
com.clickhouse.client.api.serde 84.21% 48 57
com.clickhouse.client.api.sql 0.00% 29
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 83.05% 348 419
com.clickhouse.client.api.Client.Builder 79.60% 160 201
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 71.57% 219 306
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 65.38% 238 364
com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.ArrayValue 74.19% 23 31
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 24.24% 32 132
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 57.18% 390 682
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 17.27% 19 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 75.00% 3 4
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 73.33% 44 60
com.clickhouse.client.api.internal.BasicObjectsPool 0.00% 11
com.clickhouse.client.api.internal.CachingObjectsSupplier 0.00% 10
com.clickhouse.client.api.internal.ClickHouseLZ4InputStream 87.67% 64 73
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.EnvUtils 0.00% 14
com.clickhouse.client.api.internal.Gauge 66.67% 4 6
com.clickhouse.client.api.internal.HttpAPIClientHelper 87.40% 340 389
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 37.10% 23 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 30.00% 6 20
com.clickhouse.client.api.internal.ValidationUtils.SettingsValidationException 0.00% 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 55.88% 38 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 0.00% 29
com.clickhouse.client.api.transport.HttpEndpoint 83.33% 10 12

Copy link

JDBC V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.data 29.41% 5 17
com.clickhouse.jdbc 51.45% 959 1864
com.clickhouse.jdbc.internal 28.74% 3332 11594
com.clickhouse.jdbc.metadata 42.38% 178 420
com.clickhouse.jdbc.types 32.00% 8 25
Class Coverage
Class Coverage Lines Covered Total Lines
com.clickhouse.data.Tuple 29.41% 5 17
com.clickhouse.jdbc.ConnectionImpl 72.27% 172 238
com.clickhouse.jdbc.DataSourceImpl 96.15% 25 26
com.clickhouse.jdbc.Driver 65.22% 30 46
com.clickhouse.jdbc.Driver.FrameworksDetection 90.91% 10 11
com.clickhouse.jdbc.internal.ClickHouseLexer 77.78% 28 36
com.clickhouse.jdbc.internal.ClickHouseParser 27.74% 2020 7283
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.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 0.00% 8
com.clickhouse.jdbc.internal.ClickHouseParser.ColumnExprTupleContext 0.00% 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 0.00% 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 42.86% 6 14
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 50.00% 7 14
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 0.00% 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 27.27% 6 22
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 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.LimitExprContext 0.00% 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 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.OrderExprContext 0.00% 16
com.clickhouse.jdbc.internal.ClickHouseParser.OrderExprListContext 0.00% 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 46.15% 6 13
com.clickhouse.jdbc.internal.ClickHouseParser.SetRolesListContext 0.00% 11
com.clickhouse.jdbc.internal.ClickHouseParser.SetRoleStmtContext 33.33% 7 21
com.clickhouse.jdbc.internal.ClickHouseParser.SetStmtContext 0.00% 9
com.clickhouse.jdbc.internal.ClickHouseParser.SettingExprContext 0.00% 10
com.clickhouse.jdbc.internal.ClickHouseParser.SettingExprListContext 0.00% 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.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 38.76% 188 485
com.clickhouse.jdbc.internal.ClientInfoProperties 100.00% 12 12
com.clickhouse.jdbc.internal.DriverProperties 94.12% 16 17
com.clickhouse.jdbc.internal.ExceptionUtils 69.57% 16 23
com.clickhouse.jdbc.internal.JdbcConfiguration 95.52% 128 134
com.clickhouse.jdbc.internal.JdbcUtils 87.43% 153 175
com.clickhouse.jdbc.internal.MetadataResultSet 70.00% 28 40
com.clickhouse.jdbc.internal.MetadataResultSet.OverridingSchemaAdaptor 55.00% 11 20
com.clickhouse.jdbc.internal.ParsedPreparedStatement 86.32% 82 95
com.clickhouse.jdbc.internal.ParsedStatement 55.26% 21 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.61% 129 343
com.clickhouse.jdbc.metadata.ParameterMetaDataImpl 100.00% 23 23
com.clickhouse.jdbc.metadata.ResultSetMetaDataImpl 48.15% 26 54
com.clickhouse.jdbc.PreparedStatementImpl 68.71% 303 441
com.clickhouse.jdbc.ResultSetImpl 23.93% 156 652
com.clickhouse.jdbc.StatementImpl 83.61% 199 238
com.clickhouse.jdbc.types.Array 32.00% 8 25
com.clickhouse.jdbc.WriterStatementImpl 28.85% 60 208

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.39% 1333 2103
com.clickhouse.jdbc.parser 68.20% 4481 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.00% 280 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 67.75% 2771 4090
com.clickhouse.jdbc.parser.ClickHouseSqlParserConstants 100.00% 1 1
com.clickhouse.jdbc.parser.ClickHouseSqlParserTokenManager 74.89% 1426 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

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

Copy link

Quality Gate Failed Quality Gate failed

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

See analysis details on SonarQube Cloud

@chernser chernser requested review from mzitnik and Copilot July 21, 2025 23:52
@chernser chernser marked this pull request as ready for review July 21, 2025 23:52
Copy link

@Copilot 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 PR fixes statement implementation in the JDBC v2 driver by improving state management, result set handling, and SQL processing. It addresses missing implementations and consolidates SQL utilities to ensure proper JDBC compliance.

Key Changes

  • Comprehensive statement state management with proper result set lifecycle handling
  • Moved SQL utilities from SqlParser to centralized SQLUtils class for better maintainability
  • Enhanced JDBC specification compliance with missing method implementations

Reviewed Changes

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

Show a summary per file
File Description
StatementImpl.java Major refactoring with proper state management, result set tracking, and complete JDBC method implementations
PreparedStatementImpl.java Updated to use ensureOpen() and SQLUtils for consistent state validation
WriterStatementImpl.java Updated to use ensureOpen() for state validation consistency
SQLUtils.java New centralized utility class for SQL string processing and identifier handling
SqlParser.java Removed duplicate utility methods now centralized in SQLUtils
DatabaseMetaDataImpl.java Updated to use SQLUtils for SQL literal escaping
ParsedStatement.java Updated to use SQLUtils for identifier processing
ParsedPreparedStatement.java Updated to use SQLUtils for identifier processing
Various test files Added comprehensive test coverage for new functionality

throw new SQLFeatureNotSupportedException("Set fetch direction is not supported.", ExceptionUtils.SQL_STATE_FEATURE_NOT_SUPPORTED);
ensureOpen();
if (direction != ResultSet.FETCH_FORWARD && direction != ResultSet.FETCH_REVERSE && direction != ResultSet.FETCH_UNKNOWN) {
throw new SQLException("Invalid fetch direction: " + direction + ". Should be one of ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, or ResultSet.FETCH_UNKNOW");
Copy link
Preview

Copilot AI Jul 21, 2025

Choose a reason for hiding this comment

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

The error message contains a typo: "FETCH_UNKNOW" should be "FETCH_UNKNOWN"

Suggested change
throw new SQLException("Invalid fetch direction: " + direction + ". Should be one of ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, or ResultSet.FETCH_UNKNOW");
throw new SQLException("Invalid fetch direction: " + direction + ". Should be one of ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, or ResultSet.FETCH_UNKNOWN");

Copilot uses AI. Check for mistakes.

Comment on lines +240 to +241
if (max <= 0) {
throw new SQLException("max should be a positive integer.");
Copy link
Preview

Copilot AI Jul 21, 2025

Choose a reason for hiding this comment

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

The validation logic is incorrect. According to JDBC specification, setMaxFieldSize should accept 0 to indicate no limit, but the current check throws an exception for max <= 0. It should only throw an exception for max < 0.

Suggested change
if (max <= 0) {
throw new SQLException("max should be a positive integer.");
if (max < 0) {
throw new SQLException("max should not be negative.");

Copilot uses AI. Check for mistakes.

@@ -31,7 +31,13 @@ public enum DriverProperties {
*/
BETA_ROW_BINARY_WRITER("beta.row_binary_for_simple_insert", "false"),

/**
* Enables closing result set before
Copy link
Preview

Copilot AI Jul 21, 2025

Choose a reason for hiding this comment

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

The comment is incomplete. It should describe what happens "before" - likely "before executing new statements" or similar.

Suggested change
* Enables closing result set before
* Enables closing the result set before executing new statements or when the statement is closed.
* This helps to free up resources automatically without requiring explicit result set closure.

Copilot uses AI. Check for mistakes.

try (Statement stmt = conn.createStatement()) {
stmt.closeOnCompletion();
try (ResultSet rs = stmt.executeQuery("CREATE TABLE test_empty_table (id String) Engine Memory")) {
}catch (Exception ex){
Copy link
Preview

Copilot AI Jul 21, 2025

Choose a reason for hiding this comment

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

Missing space after 'catch' keyword. Should be 'catch (Exception ex) {'

Suggested change
}catch (Exception ex){
} catch (Exception ex) {

Copilot uses AI. Check for mistakes.

* @return true if the identifier needs to be quoted, false otherwise
*/
private static boolean needsQuoting(String identifier) {
if (identifier.isEmpty()) {
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 check here if the identifier is null?

@mzitnik
Copy link
Contributor

mzitnik commented Jul 23, 2025

We get this 56.4% Coverage on New Code (required ≥ 80%)
Looking into SQLUtils, it, it seems like zero new code coverage.
Let's take a deep look into the code from a coverage perspective

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[JDBC] StatementImpl
2 participants