Skip to content

Commit c65c22d

Browse files
authored
Merge pull request #221 from datafuselabs/fix/setSchema-conn
fix: connection setSchema to switch database
2 parents daf247f + 47e21eb commit c65c22d

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

databend-jdbc/src/main/java/com/databend/jdbc/DatabendConnection.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ public class DatabendConnection implements Connection, FileTransferAPI, Consumer
7777
DatabendConnection(DatabendDriverUri uri, OkHttpClient httpClient) throws SQLException {
7878
requireNonNull(uri, "uri is null");
7979
this.httpUri = uri.getUri();
80-
this.setSchema(uri.getDatabase());
8180
this.httpClient = httpClient;
8281
this.driverUri = uri;
82+
this.setSchema(uri.getDatabase());
8383
DatabendSession session = new DatabendSession.Builder().setHost(this.getURI()).setDatabase(this.getSchema()).build();
8484
this.setSession(session);
8585
}
@@ -470,6 +470,7 @@ public void setSchema(String schema)
470470
throws SQLException {
471471
checkOpen();
472472
this.schema.set(schema);
473+
this.startQuery("use " + schema);
473474
}
474475

475476
@Override

databend-jdbc/src/test/java/com/databend/jdbc/TestDatabendDriverUri.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.testng.Assert;
55
import org.testng.annotations.Test;
66

7+
import java.sql.DriverManager;
78
import java.sql.SQLException;
89
import java.util.Properties;
910

@@ -207,4 +208,19 @@ public void testFull() throws SQLException {
207208
Assert.assertEquals("null", uri.nullDisplay().toString());
208209
Assert.assertEquals(false, uri.getStrNullAsNull());
209210
}
211+
@Test
212+
public void TestSetSchema() throws SQLException {
213+
String url = "jdbc:databend://databend:databend@localhost:8000/";
214+
Properties p = new Properties();
215+
DatabendConnection connection = (DatabendConnection) DriverManager.getConnection(url, p);
216+
try {
217+
connection.createStatement().execute("create or replace database test2");
218+
connection.createStatement().execute("create or replace table test2.test2(id int)");
219+
}catch (SQLException e){
220+
throw new RuntimeException(e);
221+
}
222+
connection.setSchema("test2");
223+
Assert.assertEquals(connection.getSchema(), "test2");
224+
connection.createStatement().execute("insert into test2 values (1)");
225+
}
210226
}

0 commit comments

Comments
 (0)