Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: adjust the interface between com.databend.client and com.databend.jdbc. #289

Open
1 task
youngsofun opened this issue Nov 25, 2024 · 5 comments
Open
1 task

Comments

@youngsofun
Copy link
Member

youngsofun commented Nov 25, 2024

the current DatabendQueryClient in com.databend.client is in fact a ResultSet, so it is not possible to extend other API based on it, especially session related ones.

Option 1

like in our go and rust clients, there is a core Client class with almost full capability and low level interface, and a Conn class to adopt to driver interface (not so strict in go, since Conn is bring into some low level).

need to create a new DatabendClient in com.databend.client and move some logic from com.databend.jdbc to it.

Option 2

if a low level Java API is not useful at all, we can combine com.databend.client into com.databend.jdbc directly.
bendsql need it for cli and multi language support?

@youngsofun
Copy link
Member Author

cc @hantmac @ZhiHanZ @sundy-li @TCeason

@flaneur2020
Copy link
Member

can it phase into depending on the rust core? cc @Xuanwo can you share some experience about opendal's java binding?

@Xuanwo
Copy link
Member

Xuanwo commented Nov 25, 2024

can it phase into depending on the rust core? cc @Xuanwo can you share some experience about opendal's java binding?

Well, it's relatively easy—just exposing some Rust API to the Java side. We can reuse the existing JDBC related code and replace the core (http related things)

@flaneur2020
Copy link
Member

so, let's move forward to the rust core on jdbc?

@Xuanwo
Copy link
Member

Xuanwo commented Nov 25, 2024

so, let's move forward to the rust core on jdbc?

Here is my +1 vote. I prefer to go with the rust direction. Maintaining a Rust core and utilizing it across our SDKs will dramatically reduce costs.

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

No branches or pull requests

3 participants