Skip to content

Commit db3725c

Browse files
committed
Merge branch 'main' into jdbc_v2_row_binary_writer
2 parents b2fe6bb + df339eb commit db3725c

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

jdbc-v2/src/main/java/com/clickhouse/jdbc/PreparedStatementImpl.java

+3-7
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,7 @@
4444
import java.time.format.DateTimeFormatter;
4545
import java.time.format.DateTimeFormatterBuilder;
4646
import java.time.temporal.ChronoField;
47-
import java.util.ArrayList;
48-
import java.util.Arrays;
49-
import java.util.Calendar;
50-
import java.util.Collection;
51-
import java.util.Collections;
52-
import java.util.List;
53-
import java.util.Map;
47+
import java.util.*;
5448
import java.util.regex.Pattern;
5549

5650
public class PreparedStatementImpl extends StatementImpl implements PreparedStatement, JdbcV2Wrapper {
@@ -681,6 +675,8 @@ private static String encodeObject(Object x) throws SQLException {
681675
}
682676
tupleString.append(")");
683677
return tupleString.toString();
678+
} else if (x instanceof UUID) {
679+
return "'" + escapeString(((UUID) x).toString()) + "'";
684680
}
685681

686682
return escapeString(x.toString());//Escape single quotes

jdbc-v2/src/test/java/com/clickhouse/jdbc/PreparedStatementTest.java

+24
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Properties;
2222
import java.util.Random;
2323
import java.util.TimeZone;
24+
import java.util.UUID;
2425

2526
import static org.testng.Assert.assertEquals;
2627
import static org.testng.Assert.assertFalse;
@@ -648,4 +649,27 @@ void testBatchInsert() throws Exception {
648649
}
649650
}
650651
}
652+
653+
@Test(groups = {"integration"})
654+
void testWriteCollection() throws Exception {
655+
String sql = "insert into `test_issue_2327` (`id`, `uuid`) values (?, ?)";
656+
try (Connection conn = getJdbcConnection();
657+
PreparedStatementImpl ps = (PreparedStatementImpl) conn.prepareStatement(sql)) {
658+
659+
try (Statement stmt = conn.createStatement()) {
660+
stmt.execute("CREATE TABLE IF NOT EXISTS `test_issue_2327` (`id` Nullable(String), `uuid` UUID) ENGINE Memory;");
661+
}
662+
UUID uuid = UUID.randomUUID();
663+
ps.setString(1, "testId01");
664+
ps.setObject(2, uuid);
665+
ps.execute();
666+
667+
try (Statement stmt = conn.createStatement()) {
668+
ResultSet rs = stmt.executeQuery("SELECT count(*) FROM `test_issue_2327`");
669+
Assert.assertTrue(rs.next());
670+
Assert.assertEquals(rs.getInt(1), 1);
671+
}
672+
}
673+
674+
}
651675
}

performance/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<properties>
1616
<apache.httpclient.version>5.3.1</apache.httpclient.version>
1717
<slf4j.version>2.0.17</slf4j.version>
18-
<ch.jdbc.revision>0.8.3-SNAPSHOT</ch.jdbc.revision>
18+
<ch.jdbc.revision>0.8.4-SNAPSHOT</ch.jdbc.revision>
1919
<jmh.version>1.37</jmh.version>
2020
<testcontainers.version>1.20.6</testcontainers.version>
2121

0 commit comments

Comments
 (0)