Skip to content

Commit d7da6b2

Browse files
committed
added uuid tests
1 parent 950c07d commit d7da6b2

File tree

4 files changed

+56
-2
lines changed

4 files changed

+56
-2
lines changed

client-v2/src/main/java/com/clickhouse/client/api/ClientConfigProperties.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,9 @@ public static Map<String, Object> parseConfigMap(Map<String, String> configMap)
311311
}
312312
}
313313

314-
LOG.warn("Unknown and unmapped config properties: {}", tmpMap);
314+
if (!tmpMap.isEmpty()) {
315+
LOG.warn("Unknown and unmapped config properties: {}", tmpMap);
316+
}
315317

316318
return parsedConfig;
317319
}

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,37 @@ public void testUnsignedIntegerTypes() throws Exception {
294294
}
295295
}
296296

297+
298+
@Test(groups = { "integration" })
299+
public void testUUIDTypes() throws Exception {
300+
Random rand = new Random();
301+
runQuery("CREATE TABLE test_uuids (order Int8, "
302+
+ "uuid Nullable(UUID) "
303+
+ ") ENGINE = MergeTree ORDER BY ()");
304+
305+
// Insert null values
306+
insertData("INSERT INTO test_uuids VALUES ( 1, NULL)");
307+
308+
// Insert random values
309+
UUID uuid = UUID.randomUUID();
310+
insertData("INSERT INTO test_uuids VALUES ( 2, "
311+
+ "'" + uuid + "')");
312+
313+
try (Connection conn = getJdbcConnection();
314+
Statement stmt = conn.createStatement();
315+
ResultSet rs = stmt.executeQuery("SELECT uuid FROM test_uuids ORDER BY order")) {
316+
317+
assertTrue(rs.next());
318+
assertNull((UUID) rs.getObject("uuid"));
319+
320+
321+
assertTrue(rs.next());
322+
assertEquals((UUID) rs.getObject("uuid"), uuid);
323+
324+
assertFalse(rs.next());
325+
}
326+
}
327+
297328
@Test(groups = { "integration" })
298329
public void testDecimalTypes() throws SQLException {
299330
runQuery("CREATE TABLE test_decimals (order Int8, "

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,17 @@ void testWriteUUID() throws Exception {
868868
Assert.assertTrue(rs.next());
869869
Assert.assertEquals(rs.getInt(1), 1);
870870
}
871+
872+
final String selectSQL = "SELECT * FROM `test_issue_2327` WHERE " +
873+
"`" + getDatabase() + "`.`test_issue_2327`.`uuid` IN (CAST(? AS UUID))";
874+
try (PreparedStatement stmt = conn.prepareStatement(selectSQL)) {
875+
stmt.setString(1, uuid.toString());
876+
try (ResultSet rs = stmt.executeQuery()) {
877+
Assert.assertTrue(rs.next());
878+
Assert.assertEquals(rs.getString(1), "testId01");
879+
Assert.assertEquals(rs.getString(2), uuid.toString());
880+
}
881+
}
871882
}
872883

873884
}

jdbc-v2/src/test/java/com/clickhouse/jdbc/internal/SqlParserTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,15 @@ public void testStmtWithFunction() {
212212
Assert.assertEquals(stmt.getArgCount(), 4);
213213
}
214214

215+
@Test
216+
public void testStmtWithUUID() {
217+
String sql = "select sum(value) from `uuid_filter_db`.`uuid_filter_table` where uuid = ?";
218+
SqlParser parser = new SqlParser();
219+
ParsedPreparedStatement stmt = parser.parsePreparedStatement(sql);
220+
Assert.assertEquals(stmt.getArgCount(), 1);
221+
Assert.assertFalse(stmt.isHasErrors());
222+
}
223+
215224
@Test(dataProvider = "testCreateStmtDP")
216225
public void testCreateStatement(String sql) {
217226
SqlParser parser = new SqlParser();
@@ -315,7 +324,8 @@ public Object[][] testMiscStmtDp() {
315324
{"GRANT ON CLUSTER '{cluster}' `metabase_test_role`, `metabase-test-role` TO `metabase_test_user`", 0},
316325
{"SELECT * FROM `test_data`.`categories` WHERE id = 1::String or id = ?", 1},
317326
{"SELECT * FROM `test_data`.`categories` WHERE id = cast(1 as String) or id = ?", 1},
318-
{INSERT_INLINE_DATA, 0}
327+
{INSERT_INLINE_DATA, 0},
328+
{"select sum(value) from `uuid_filter_db`.`uuid_filter_table` WHERE `uuid_filter_db`.`uuid_filter_table`.`uuid` IN (CAST('36f7f85c-d7f4-49e2-af05-f45d5f6636ad' AS UUID))", 0},
319329
};
320330
}
321331

0 commit comments

Comments
 (0)