From 5ca9485fe76bce8e5e8cb4effcaa74b4ffc5a089 Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Mon, 10 May 2021 16:26:42 +0200 Subject: [PATCH 1/3] Return correct value from getAutoCommit --- .../java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java index 6ec960ca4..0b498c6ac 100644 --- a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java +++ b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java @@ -214,7 +214,7 @@ public void setAutoCommit(boolean autoCommit) throws SQLException { @Override public boolean getAutoCommit() throws SQLException { - return false; + return true; } @Override From 259682eaa8d5af741e4df57ca745f21ae3ae574c Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Mon, 10 May 2021 16:32:10 +0200 Subject: [PATCH 2/3] Return proper error when user tries to enable transactions Transactions are not supported, so `setAutoCommit(false)` should fail, as it does not provide the isolation or rollback-ability requested by the caller. `commit()` and `rollback()` should fail in auto-commit mode (this is what PostgreSQL JDBC driver does). --- .../ru/yandex/clickhouse/ClickHouseConnectionImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java index 0b498c6ac..87ec88fa7 100644 --- a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java +++ b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java @@ -209,7 +209,10 @@ public String nativeSQL(String sql) throws SQLException { @Override public void setAutoCommit(boolean autoCommit) throws SQLException { - + if (autoCommit) { + return; + } + throw new SQLFeatureNotSupportedException("Transactions are not supported"); } @Override @@ -219,12 +222,12 @@ public boolean getAutoCommit() throws SQLException { @Override public void commit() throws SQLException { - + throw new SQLException("Cannot commit when auto-commit is enabled"); } @Override public void rollback() throws SQLException { - + throw new SQLException("Cannot commit when auto-commit is enabled"); } @Override From d8139941e458ff4de8fcf3509b1b07e8795bac6f Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Tue, 11 May 2021 09:20:00 +0200 Subject: [PATCH 3/3] fixup! Return proper error when user tries to enable transactions --- .../java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java index 87ec88fa7..1ba8d191e 100644 --- a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java +++ b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseConnectionImpl.java @@ -227,7 +227,7 @@ public void commit() throws SQLException { @Override public void rollback() throws SQLException { - throw new SQLException("Cannot commit when auto-commit is enabled"); + throw new SQLException("Cannot rollback when auto-commit is enabled"); } @Override