Skip to content

Conversation

@chernser
Copy link
Contributor

@chernser chernser commented Jul 27, 2025

Summary

  • Improves test coverage for the PreparedStatementImpl
  • Adds missing check that all parameters are set before executing a query
  • Does simple type cast. Further work will be done later

Closes #2418
Closes #2391

Checklist

Delete items not relevant to your PR:

@github-actions
Copy link

github-actions bot commented Jul 27, 2025

Client V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.client.api 83.83% 757 903
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.47% 1086 1826
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.41% 570 766
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 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 83.53% 350 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.43% 215 301
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.03% 238 366
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 25.60% 32 125
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 56.13% 394 702
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 60.61% 20 33
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.34% 338 387
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 87.50% 28 32
com.clickhouse.client.api.transport.HttpEndpoint 83.33% 10 12

@github-actions
Copy link

github-actions bot commented Jul 27, 2025

JDBC V2 Coverage

Coverage Report

Package Coverage Lines Covered Total Lines
com.clickhouse.data 19.23% 5 26
com.clickhouse.jdbc 55.21% 1043 1889
com.clickhouse.jdbc.internal 31.30% 3665 11711
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 19.23% 5 26
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 30.50% 2237 7334
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 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.CteUnboundColLiteralContext 62.50% 5 8
com.clickhouse.jdbc.internal.ClickHouseParser.CteUnboundColParamContext 62.50% 5 8
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 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 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 42.74% 209 489
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 88.18% 179 203
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.60% 84 97
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 79.74% 374 469
com.clickhouse.jdbc.ResultSetImpl 24.69% 161 652
com.clickhouse.jdbc.StatementImpl 83.61% 199 238
com.clickhouse.jdbc.types.Array 32.00% 8 25
com.clickhouse.jdbc.WriterStatementImpl 33.17% 68 205

@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.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

@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

@mshustov mshustov requested a review from Copilot July 28, 2025 11:20
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 PR improves the PreparedStatementImpl implementation by adding comprehensive test coverage, implementing missing parameter validation, and introducing type casting functionality. The changes address issue #2418 by ensuring proper prepared statement behavior.

  • Adds extensive test coverage for various prepared statement methods including streams, type casts, and parameter validation
  • Implements validation to ensure all parameters are set before query execution
  • Adds support for SQL type casting with ClickHouse data types

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
PreparedStatementTest.java Comprehensive test coverage for prepared statement functionality including streams, type casts, and parameter validation
PreparedStatementImpl.java Core implementation changes including parameter validation, type casting, and improved stream handling
JdbcUtils.java Added SQL-to-ClickHouse type mapping and tuple conversion utility
Tuple.java Added equals and hashCode methods for proper object comparison
SQLUtils.java Added utility method for escaping single quotes in SQL strings
DataTypeUtils.java Updated date formatters to use 'uuuu' pattern for better year handling
ClickHouseDataType.java Implemented SQLType interface to enable type casting functionality

@chernser chernser requested a review from mzitnik July 29, 2025 15:28
* Formatter for the DateTime type.
*/
public static DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
Copy link
Contributor

Choose a reason for hiding this comment

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

Do you have a link or explanation for doing that, since you do not see that so often (using the format with uuuu)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

y if for year in era and u is for just year.


@Override
public boolean equals(Object obj) {
if (this == obj) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's check if obj is null

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok. The null check is done on obj instanceof Tuple.

String val = values[i];
compiledSql.replace(p, p+1, val == null ? "NULL" : val);
posOffset += val == null ? 0 : val.length() - 1;
if (val == null) {
Copy link
Contributor

Choose a reason for hiding this comment

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

A remark for before and after the string will be great here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Previously we did not check if all parameters are set. This change just moved lines 122 and 123 below the check.
val is null only when we have not set any value. NULL will be a "NULL" string.

@DataProvider(name = "testTypeCastsDP")
public static Object[][] testTypeCastsDP() {
return new Object[][] {
{100, ClickHouseDataType.Int8, ClickHouseDataType.Int8},
Copy link
Contributor

Choose a reason for hiding this comment

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

{100, ClickHouseDataType.Int8, ClickHouseDataType.Int8} according to method signutare testTypeCastsWithoutArgument(Object value, SQLType targetType, ClickHouseDataType expectedType)
SQLType targetType -> ClickHouseDataType expectedType)
I'm missing something here

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've made ClickHouseDataType to implement SQLType what is valid according to the spec.
I do always convert any type to ClickHouseDataType. In this case first ClickHouseDataType.Int8 acts as some SQLType instance. The second ClickHouseDataType.Int8 used to check if name of the type returned correctly. For that I use toTypeName function.

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
74.5% Coverage on New Code (required ≥ 80%)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@chernser chernser merged commit 5bb09a4 into main Jul 30, 2025
40 of 47 checks passed
@chernser chernser deleted the fix_prepared_statement_impl branch July 30, 2025 14:07
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] PreparedStatementImpl [jdbc] Parsing statement containing WITH clause fails on client side

3 participants