Skip to content

[jdbc-v2] Impossible to SELECT duplicated data in 0.8.4 #2336

@Onajk

Description

@Onajk

Describe the bug

After updating jdbc driver there is an error while trying to SELECT duplicated data.

Steps to reproduce

  1. "SELECT 'value1', 'value1'"
  2. Observe error

Expected behaviour

Correctly return duplicated data

Code example

Statement stmt = conn.createStatement(); stmt.executeQuery("""  SELECT 'value1', 'value1'  """); ResultSet rs = stmt.getResultSet();

Error log

java.sql.SQLException: Multiple entries with same key: 'value1'=1 and 'value1'=0	at com.clickhouse.jdbc.internal.ExceptionUtils.toSqlState(ExceptionUtils.java:71)	at com.clickhouse.jdbc.internal.ExceptionUtils.toSqlState(ExceptionUtils.java:39)	at com.clickhouse.jdbc.StatementImpl.executeQuery(StatementImpl.java:207)	at com.clickhouse.jdbc.StatementImpl.executeQuery(StatementImpl.java:151)	at com.clickhouse.jdbc.PreparedStatementImpl.executeQuery(PreparedStatementImpl.java:110)	at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)	at doobie.free.KleisliInterpreter$PreparedStatementInterpreter.$anonfun$executeQuery$2(kleisliinterpreter.scala:931)	at doobie.free.KleisliInterpreter.$anonfun$primitive$2(kleisliinterpreter.scala:104)	at flatMap @ doobie.WeakAsync$$anon$1.flatMap(WeakAsync.scala:30)	at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:169)	at flatMap @ doobie.WeakAsync$$anon$1.flatMap(WeakAsync.scala:30)	at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:169)	at uncancelable @ doobie.WeakAsync$$anon$1.uncancelable(WeakAsync.scala:38)	at flatMap @ doobie.WeakAsync$$anon$1.flatMap(WeakAsync.scala:30)	at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:169)	at flatMap @ doobie.WeakAsync$$anon$1.flatMap(WeakAsync.scala:30)	at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:169)	at suspend @ doobie.WeakAsync$$anon$1.suspend(WeakAsync.scala:36)	at flatMap @ doobie.WeakAsync$$anon$1.flatMap(WeakAsync.scala:30)	at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:169)	at flatMap @ doobie.WeakAsync$$anon$1.flatMap(WeakAsync.scala:30)	at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:169) Caused by: java.lang.IllegalArgumentException: Multiple entries with same key: 'value1'=1 and 'value1'=0	at com.google.common.collect.ImmutableMap.conflictException(ImmutableMap.java:382)	at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:376)	at com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:246)	at com.google.common.collect.RegularImmutableMap.fromEntryArrayCheckingBucketOverflow(RegularImmutableMap.java:134)	at com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:96)	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:579)	at com.google.common.collect.ImmutableMap$Builder.buildOrThrow(ImmutableMap.java:607)	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:594)	at com.clickhouse.client.api.metadata.TableSchema.<init>(TableSchema.java:41)	at com.clickhouse.client.api.metadata.TableSchema.<init>(TableSchema.java:26)	at com.clickhouse.client.api.data_formats.RowBinaryWithNamesAndTypesFormatReader.readSchema(RowBinaryWithNamesAndTypesFormatReader.java:45)	at com.clickhouse.client.api.data_formats.RowBinaryWithNamesAndTypesFormatReader.<init>(RowBinaryWithNamesAndTypesFormatReader.java:23)	at com.clickhouse.client.api.Client.newBinaryFormatReader(Client.java:2086)	at com.clickhouse.client.api.Client.newBinaryFormatReader(Client.java:2104)	at com.clickhouse.jdbc.StatementImpl.executeQuery(StatementImpl.java:202)	at com.clickhouse.jdbc.StatementImpl.executeQuery(StatementImpl.java:151)	at com.clickhouse.jdbc.PreparedStatementImpl.executeQuery(PreparedStatementImpl.java:110)	at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)	at doobie.free.KleisliInterpreter$PreparedStatementInterpreter.$anonfun$executeQuery$2(kleisliinterpreter.scala:931)	at doobie.free.KleisliInterpreter.$anonfun$primitive$2(kleisliinterpreter.scala:104)	at cats.effect.IOFiber.runLoop(IOFiber.scala:1004)	at cats.effect.IOFiber.execR(IOFiber.scala:1362)	at cats.effect.IOFiber.run(IOFiber.scala:112)	at cats.effect.unsafe.WorkerThread.run(WorkerThread.scala:702)

Configuration

"com.clickhouse" % "clickhouse-jdbc" % "0.8.4"

ClickHouse server

ClickHouse version I use is: ver. 24.3.12.76

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions