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

R2DBC support #456

Open
NorbertSandor opened this issue Dec 26, 2018 · 18 comments
Open

R2DBC support #456

NorbertSandor opened this issue Dec 26, 2018 · 18 comments

Comments

@NorbertSandor
Copy link

@NorbertSandor NorbertSandor commented Dec 26, 2018

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

@NorbertSandor
Copy link
Author

@NorbertSandor NorbertSandor commented Jan 19, 2019

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

@mp911de
Copy link

@mp911de mp911de commented May 18, 2019

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/

@sollecitom
Copy link

@sollecitom sollecitom commented Mar 26, 2020

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

@ivseb
Copy link

@ivseb ivseb commented May 14, 2020

Any news? :)

@taylancapraz
Copy link

@taylancapraz taylancapraz commented Jun 1, 2020

Are there any plan on this?

@gytis-ivaskevicius
Copy link

@gytis-ivaskevicius gytis-ivaskevicius commented Aug 5, 2020

Alright its my time to shine. Ahem.

Any news on this?

@Tapac
Copy link
Contributor

@Tapac Tapac commented Aug 21, 2020

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?

@gytis-ivaskevicius
Copy link

@gytis-ivaskevicius gytis-ivaskevicius commented Aug 21, 2020

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

@Tapac
Copy link
Contributor

@Tapac Tapac commented Aug 21, 2020

@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.

  2. 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 :)

@jvisker
Copy link
Contributor

@jvisker jvisker commented Aug 23, 2020

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

@Tapac
Copy link
Contributor

@Tapac Tapac commented Aug 23, 2020

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

@jvisker
Copy link
Contributor

@jvisker jvisker commented Sep 4, 2020

Did I miss this release somehow?

@Tapac
Copy link
Contributor

@Tapac Tapac commented Sep 4, 2020

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.

@peterfigure
Copy link

@peterfigure peterfigure commented Sep 22, 2020

hi @Tapac - any news here?

@dondish
Copy link

@dondish dondish commented Nov 10, 2020

Any updates?

@cantaylancapraz
Copy link

@cantaylancapraz cantaylancapraz commented Feb 21, 2021

Is there an estimated completion date for this issue?

@cantaylancapraz
Copy link

@cantaylancapraz cantaylancapraz commented Sep 15, 2021

Hi @Tapac

There is no update on this issue for a long time. Last information that we get about progress was in August 2020.

Could you please tell us whether this issue still on development or not?
Or has it been postponed to the future?

@Tapac
Copy link
Contributor

@Tapac Tapac commented Sep 16, 2021

The work in progress, you can check rdbc-poc branch and try to build it localy.
R2DBC connecion will require also jdbc connection for operations with Schemas as R2DBC doesn't provide any api for extracting metadata. The example of how to connect with R2DBC can be found in tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet