From f655cb18b5e03510195a22983ef84457c06ce8aa Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 10 Dec 2019 17:16:03 +0300 Subject: [PATCH 1/2] Bugfix for Boolean type formatting: needsQuoting(Boolean) -> false --- .../ru/yandex/clickhouse/util/ClickHouseValueFormatter.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/ru/yandex/clickhouse/util/ClickHouseValueFormatter.java b/src/main/java/ru/yandex/clickhouse/util/ClickHouseValueFormatter.java index 9c5888ee9..529450595 100644 --- a/src/main/java/ru/yandex/clickhouse/util/ClickHouseValueFormatter.java +++ b/src/main/java/ru/yandex/clickhouse/util/ClickHouseValueFormatter.java @@ -168,6 +168,9 @@ public static boolean needsQuoting(Object o) { if (o instanceof Number) { return false; } + if (o instanceof Boolean) { + return false; + } if (o.getClass().isArray()) { return false; } From cd6da5a90043940c128b9054567b4ec0053acb59 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 11 Dec 2019 11:23:13 +0300 Subject: [PATCH 2/2] Added unit tests for ClickHousePreparedStatementParameter.fromObject --- ...ckHousePreparedStatementParameterTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/ru/yandex/clickhouse/ClickHousePreparedStatementParameterTest.java b/src/test/java/ru/yandex/clickhouse/ClickHousePreparedStatementParameterTest.java index 5fb17bf95..7b167aa4a 100644 --- a/src/test/java/ru/yandex/clickhouse/ClickHousePreparedStatementParameterTest.java +++ b/src/test/java/ru/yandex/clickhouse/ClickHousePreparedStatementParameterTest.java @@ -33,4 +33,25 @@ public void testArrayAndCollectionParam() { assertEquals(p0.getBatchValue(), p1.getBatchValue()); } + @Test + public void testBooleanParam() { + assertEquals(ClickHousePreparedStatementParameter.fromObject(Boolean.TRUE, + TimeZone.getDefault(), TimeZone.getDefault()).getRegularValue(), "1"); + assertEquals(ClickHousePreparedStatementParameter.fromObject(Boolean.FALSE, + TimeZone.getDefault(), TimeZone.getDefault()).getRegularValue(), "0"); + } + + @Test + public void testNumberParam() { + assertEquals(ClickHousePreparedStatementParameter.fromObject(10, + TimeZone.getDefault(), TimeZone.getDefault()).getRegularValue(), "10"); + assertEquals(ClickHousePreparedStatementParameter.fromObject(10.5, + TimeZone.getDefault(), TimeZone.getDefault()).getRegularValue(), "10.5"); + } + + @Test + public void testStringParam() { + assertEquals(ClickHousePreparedStatementParameter.fromObject("someString", + TimeZone.getDefault(), TimeZone.getDefault()).getRegularValue(), "'someString'"); + } }