Exposed: R2DBC support

Created on 26 Dec 2018  路  16Comments  路  Source: JetBrains/Exposed

Please make it possible to use https://github.com/r2dbc/r2dbc-client

enhancement

Most helpful comment

Is this in progress? Would love to use Exposed if this was in.

All 16 comments

A pluggable low-level database access layer would be even more better. It would be possible to support more "special" non-standard implementations like https://github.com/reactiverse/reactive-pg-client

R2DBC support is built best on top of R2DBC SPI directly and not on R2DBC Client. R2DBC is for reactive programming what JDBC is for imperative programming. R2DBC can easily wrap less-capable asynchronous/non-blocking SQL database drivers exposing their functionality through a standardized SPI.

Javadoc: https://r2dbc.io/spec/0.8.0.M8/api/

Is this in progress? Would love to use Exposed if this was in.

Any news? :)

Are there any plan on this?

Alright its my time to shine. Ahem.

Any news on this?

Hi everyone, I have a prove of concept implementation of RDBC driver support, BUT!
RDBC api doesn't provide any methods to obtain database metadata like listing of database tables.

Right now I had decided to add ability to provide optional JDBC connection as a Database.connect parameter if you'd like to use some DDL.

It means that all DML operations will be handled by RDBC driver and all other with JDBC.

What do you think about it?

Brilliant news!!!

But here are a couple of things:

  1. Is metadata really necessary? If it is bearly used maybe it could be ignored or reimplemented? Probably tomorrow will check out how Exposed works more in detail. I kinda got curious
  2. Another option would be to manually implement it by executing a couple of database specific queries to retrieve required metadata. This would require more work but I feel like it is a better solution

@WithoutCaps ,

  1. It could be ignored if you do not want to make any DDL queries and just work with existing schema (or manage it with something like Flyway or Liquibase`. That's why I made it optional to provide jdbc connection.
  1. Yep, I started with that apprach, but finished at the time I dig into H2 queries (inside H2 jdbc driver) for fetching column names of tables. As Exposed supports a lot of DBMS I can't spend so much time to support all of them also in that place.
    Jdbc drivers usually supported by database developers and they know when they should fix a query for a new DB version or how to optimize them. I don't :)

@Tapac Are you planning on having people try out the proof of concept?

@jvisker , yep. Have to add some tests and add documentation on how to use it. Hopefully I'll release it on the next week.

Did I miss this release somehow?

Nope, I just stuck with fixing all current tests with R2DBC driver. The tests with savepoints still fail, so I can't release it right now.

hi @Tapac - any news here?

Any updates?

Is there an estimated completion date for this issue?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gertvdijk picture gertvdijk  路  4Comments

blackmo18 picture blackmo18  路  3Comments

coolemza picture coolemza  路  3Comments

supertote picture supertote  路  3Comments

mgmeiner picture mgmeiner  路  3Comments