Skip to content

Conversation

@Nexus6v2
Copy link
Contributor

  • Added support for Turso's libsql urls.
  • Fixed existing jdbc:dbeaver:libsql URLs suport.

@Nexus6v2 Nexus6v2 linked an issue Jun 20, 2025 that may be closed by this pull request
@Nexus6v2 Nexus6v2 force-pushed the dbeaver/dbeaver-jdbc-libsql#17-libsql-url-support branch from 1c9d275 to 2147691 Compare June 20, 2025 10:02
@uslss
Copy link
Member

uslss commented Jun 26, 2025

cannot connect to https db
image

eclipse.buildId=unknown
java.version=21.0.5
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en
Framework arguments:  -eclipse.keyring C:\Users\Dziyana\AppData\Roaming\DBeaverData\secure\secure_storage
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -eclipse.keyring C:\Users\Dziyana\AppData\Roaming\DBeaverData\secure\secure_storage

org.jkiss.dbeaver.model
Error
Thu Jun 26 15:29:24 CEST 2025
UnresolvedAddressException

java.nio.channels.UnresolvedAddressException
	at java.base/sun.nio.ch.Net.checkAddress(Unknown Source)
	at java.base/sun.nio.ch.Net.checkAddress(Unknown Source)
	at java.base/sun.nio.ch.SocketChannelImpl.checkRemote(Unknown Source)
	at java.base/sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
	at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$1(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.AsyncSSLConnection.connectAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.Http1Exchange.sendHeadersAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.Exchange.lambda$responseAsyncImpl0$8(Unknown Source)
	at java.net.http/jdk.internal.net.http.Exchange.checkFor407(Unknown Source)
	at java.net.http/jdk.internal.net.http.Exchange.lambda$responseAsyncImpl0$9(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.uniHandle(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.handle(Unknown Source)
	at java.net.http/jdk.internal.net.http.Exchange.responseAsyncImpl0(Unknown Source)
	at java.net.http/jdk.internal.net.http.Exchange.responseAsyncImpl(Unknown Source)
	at java.net.http/jdk.internal.net.http.Exchange.responseAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.MultiExchange.responseAsyncImpl(Unknown Source)
	at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.uniHandle(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.handle(Unknown Source)
	at java.net.http/jdk.internal.net.http.MultiExchange.responseAsyncImpl(Unknown Source)
	at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsync0$2(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)
	at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.completeAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.MultiExchange.responseAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.HttpClientImpl.sendAsync(Unknown Source)
	at java.net.http/jdk.internal.net.http.HttpClientImpl.send(Unknown Source)
	at java.net.http/jdk.internal.net.http.HttpClientFacade.send(Unknown Source)
	at com.dbeaver.jdbc.driver.libsql.client.LibSqlClient.executeBatch(LibSqlClient.java:110)
	at com.dbeaver.jdbc.driver.libsql.client.LibSqlClient.execute(LibSqlClient.java:84)
	at com.dbeaver.jdbc.driver.libsql.LibSqlStatement.executeQuery(LibSqlStatement.java:44)
	at com.dbeaver.jdbc.driver.libsql.LibSqlUtils.executeQuery(LibSqlUtils.java:66)
	at com.dbeaver.jdbc.driver.libsql.LibSqlConnection.<init>(LibSqlConnection.java:61)
	at com.dbeaver.jdbc.driver.libsql.LibSqlDriver.connect(LibSqlDriver.java:59)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCConnectionOpener.run(JDBCConnectionOpener.java:112)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCConnectionOpener.run(JDBCConnectionOpener.java:86)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:215)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:133)
	at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.openConnection(GenericDataSource.java:158)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext.connect(JDBCExecutionContext.java:124)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.initializeMainContext(JDBCRemoteInstance.java:106)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.<init>(JDBCRemoteInstance.java:61)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.initializeRemoteInstance(JDBCDataSource.java:125)
	at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.<init>(GenericDataSource.java:124)
	at org.jkiss.dbeaver.ext.sqlite.model.SQLiteDataSource.<init>(SQLiteDataSource.java:49)
	at org.jkiss.dbeaver.ext.sqlite.model.SQLiteMetaModel.createDataSourceImpl(SQLiteMetaModel.java:223)
	at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.openDataSource(GenericDataSourceProvider.java:57)
	at org.jkiss.dbeaver.registry.DataSourceDescriptor.openDataSource(DataSourceDescriptor.java:1419)
	at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect0(DataSourceDescriptor.java:1271)
	at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:1061)
	at org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:78)
	at org.jkiss.dbeaver.runtime.jobs.ConnectionTestJob.run(ConnectionTestJob.java:102)
	at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:119)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

@Nexus6v2
Copy link
Contributor Author

Nexus6v2 commented Jun 26, 2025

@uslss Yeah, hostnames are handled only without the protocol. It should work without it.
I'll add a quick fix to parse the full url correctly

@uslss
Copy link
Member

uslss commented Jun 30, 2025

http and libsql urls are not handled correctly
image

@MashaKorax
Copy link

verified

@serge-rider serge-rider merged commit 221cc34 into devel Jul 1, 2025
4 checks passed
serge-rider added a commit that referenced this pull request Jul 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for connecting to a Turso db remotely

4 participants