Skip to content

Commit 8d77e8f

Browse files
committed
fix USE statement
1 parent 983a527 commit 8d77e8f

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,8 +396,8 @@ public boolean execute(String sql, QuerySettings settings) throws SQLException {
396396
//USE Database
397397
List<String> tokens = JdbcUtils.tokenizeSQL(sql);
398398
this.schema = tokens.get(1).replace("\"", "");
399-
connection.getDefaultQuerySettings().setDatabase(schema);
400-
LOG.debug("Changed statement schema {}", schema);
399+
connection.setSchema(schema);
400+
LOG.debug("Changed statement schema to {}", schema);
401401
return false;
402402
} else {
403403
executeUpdate(sql, settings);

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,16 @@ public void testSwitchDatabase() throws Exception {
591591
assertFalse(stmt.execute("USE \"" + databaseName + "\""));
592592
assertEquals(stmt.executeUpdate(createSql), 0);
593593
}
594+
conn.createStatement().execute("USE system");
595+
ResultSet rs = conn.createStatement().executeQuery("SELECT name FROM settings LIMIT 1;");
596+
assertTrue(rs.next());
597+
assertNotNull(rs.getString(1));
598+
assertFalse(rs.next());
599+
conn.createStatement().execute("USE \"" + databaseName + "\"");
600+
rs = conn.createStatement().executeQuery("SHOW TABLES LIMIT 1");
601+
assertTrue(rs.next());
602+
assertEquals(rs.getString(1), "switchDatabaseWithUse");
603+
assertFalse(rs.next());
594604
}
595605
}
596606

0 commit comments

Comments
 (0)