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

Split modules, completely overhaul the client creation APIs, and decouple PostgreSQL, our SQL DSL APIs, and our mapper SQL DSL APIs #16

Merged
merged 27 commits into from
Nov 20, 2024

Conversation

ShreckYe
Copy link
Member

No description provided.

…nd benchmark code into the module "integrated"

IntelliJ IDEA Code Analysis shows there are 5 errors.
…gConnection` for different DBs, replacing them with `Pool` and `Connection`

A new `withTypedTransaction` function is added and `withPgTransaction` is moved into the `postgresql` package.
Major changes:

1. move some code to finer-grained subpackages
1. initially overhaul the APIs related to the creation of Vert.x SQL clients and `DatabaseClient`s

   The `create...andSetRole` functions are removed, and their functionalities are merged into the `create...` functions.

1. add TODOs as guidance for the remaining work
1. move code related to `PostgreSQL` into the `postgreql` package
1. refactor the Vert.x `SqlClient` and Exposed `Database` creation APIs to be more configurable and straightforward
1. extract some common functions for JDBC, Exposed, and Vert.x
1. move the example code into the `main` source set
1. remove the extra `DatabaseClient` creation APIs `create*DatabaseClient`
1. adopt `EvscConfig` as the single-source-of-truth client config
1. add some more TODOs
1. update the example code README.md correspondingly
…users usually don't call them directly and by doing this we don't forget to pass arguments in a caller
…ed" module

```text
Execution failed for task ':exposed-vertx-sql-client-integrated:compileBenchmarksKotlin'.
> Could not resolve all files for configuration ':exposed-vertx-sql-client-integrated:benchmarksCompileClasspath'.
   > Could not resolve all dependencies for configuration ':exposed-vertx-sql-client-integrated:benchmarksCompileClasspath'.
      > Could not find io.vertx:vertx-sql-client:.
        Required by:
            project :exposed-vertx-sql-client-integrated > project :exposed-vertx-sql-client-core
```
…-mapper" into these modules

Miscellaneous changes:
1. remove the PostgreSQL dependencies in the "core" module
1. add and use the `@InternalApi` opt-in annotation
1. update `executeExpression` to throw since the core module doesn't depend on the "sql-dsl" module anymore
1. add an example of `DatabaseClient.selectExpression` with `exists` in the example code
@ShreckYe ShreckYe changed the title Split modules, completely overhaul the client creation APIs, and decouple PostgreSQL Split modules, completely overhaul the client creation APIs, and decouple PostgreSQL, our SQL DSL APIs, and our mapper SQL DSL APIs Nov 19, 2024
@ShreckYe ShreckYe marked this pull request as ready for review November 19, 2024 20:10
…d `multiThreadConcurrent10KTransactionsWithImplicitThreadLocalDatabases` into the benchmark code, fix `singleThreadConcurrent10KTransactions` which actually runs on multiple threads instead of one BTW, and improve `multiThreadConcurrent10KTransactionsWithSharedDatabase` BTW
@ShreckYe ShreckYe force-pushed the split-modules-and-decouple branch from 68461f2 to 90dc927 Compare November 20, 2024 10:07
@ShreckYe ShreckYe merged commit 84ae817 into dev-dependent-on-snapshots Nov 20, 2024
0 of 2 checks passed
@ShreckYe ShreckYe deleted the split-modules-and-decouple branch November 20, 2024 11:54
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.

1 participant