* feat: Add proxy connection type
* feat: Add proxy database's proxy functions trait.
* fix: Remove some unused impl to fix the unit test
* test: Create the proxy by empty declaration.
* test: Try to genereate query and exec commands.
* perf: Add more query debug trait for debugging.
* chore: Add the example for wasi + proxy.
* chore: Try to read string from wasmtime vm.
* chore: Sucks, but how to do without tokio::spawn?
* chore: Complete the basic memory read logic.
* chore: Abandon the WASI demo, native demo first...
* refactor: Use single proxy connection generator
to avoid stack overflow
* refactor: Rename the inner structs' name
* fix: Fix CI clippy and unit test
* fix: Rename the example.
* chore: Try to embed surrealdb for proxy test.
* fix: Transfer the query result correctly.
* refactor: Rename the example.
* chore: Ready to add example for wasmtime proxy.
* feat: Try to compile sea-orm into wasm binary.
But it would failed on wasm32-wasi target because of the socket deps.
It can be compiled on wasm32-unknown-unknown target.
* fix: WASM targets can't use sqlx.
* fix: Try to fix CI by remove toml.
* fix: Try to fix CI by remove toml.
* fix: Move vm to the example's root dir.
* fix: Add a pre-build script.
* chore: Add README.
* fix: Try to fix CI.
* feat: Add proxy logic in wasm module.
* fix: Try to run the wasi module.
But WASI cannot support multi threads..
so the module was run failed.
* refactor: Bump wasmtime to 14.
* fix: Now we can use async traits on wasmtime.
The solution is add the current thread tag to tokio-wasi.
* build: Use build.rs instead of dynamic command.
* feat: Add the execute result's transfer logic.
* fix: Convert sqlx query result for sea-query.
* fix: Now we can transfer wasm's query to outside.
* refactor: Convert to ProxyRow first.
It's the solution to know the type information about the value.
* fix: Multiple time library reference.
* feat: Add a new proxy example which uses GlueSQL.
* test: Add the test cases for three new examples.
Just try to run once...
* ci: Add wasm component's compiler for unit test.
* ci: Add wasi target.
* ci: It may needs wasi target twice...
* feat: Add more keys for proxy execute result.
To transfer the fully information of the execute result.
* fix: Use custom id type instead of json value.
* fix: Wrong reference type.
* fix: Rewrite the transformer.
* perf: Add ToString trait for proxy exec result.
* revert: Again.
Refs: 9bac6e91ca9df04ccd8368906e1613cfc5b96218
* revert: Back to the basic proxy exec result.
Refs: e0330dde73a54d461d5f38c69eec5e13bcc928d4
* refactor: Update GlueSQL and SurrealDB examples. (#1980)
* refactor: Bump gluesql to 0.15
Relate to https://github.com/gluesql/gluesql/issues/1438
* Use SQLParser to parse and replace placeholders.
* Use SQLParser for surrealdb demo.
* Transform the query by SQLParser.
* Tweaks
* Remove wasmtime example. (#2001)
* ci: Add additional targets.
* Remove proxy wasmtime example.
* Format
---------
Co-authored-by: 伊欧 <langyo.china@gmail.com>
Co-authored-by: 伊欧 <m13776491897@163.com>
* feat: Introducing feature "sqlx-error"
Purpose of this feature is to not convert errors given from sqlx into strings to ease further analysis of the error and react to it accordingly. This implementation uses a feature switch and an additional error kind to avoid interfering with existing implementations without this feature enabled.
See discussion https://github.com/SeaQL/sea-orm/discussions/709
* fix: Align feature "sqlx-error" with merged Migration error kind
Due to the merge, an other error kind had been introduced and the DbErr became Eq and Clone, however Eq cannot easily be derived from, so I went back to PartialEq, and since the sqlx error does not implement clone, this was converted into an Arc, to allow cloning of the new kind too.
* fix: Repairing failing jobs
Several jobs had failed as I missed to correct the return values of a few methods in transaction.rs and had a wrong understanding of map_err at that point.
* feat: realigning with latest changes in sea-orm, different approach
Instead of the former approach to introduce a new error kind, now the existing error types get extended, for now only Exec and Query, because these are the most relevant for the requirement context.
Afterwards it might still be possible to add some further detail information.
See discussion https://github.com/SeaQL/sea-orm/discussions/709
* Update src/driver/sqlx_mysql.rs
Integrating fixes done by @Sculas
Co-authored-by: Sculas <contact@sculas.xyz>
* Update src/driver/sqlx_postgres.rs
Integrating fixes done by @Sculas
Co-authored-by: Sculas <contact@sculas.xyz>
* Update src/driver/sqlx_sqlite.rs
Integrating fixes done by @Sculas
Co-authored-by: Sculas <contact@sculas.xyz>
* feat: reworking feature with thiserror
Following the latest suggestions I changed the implementation to utilize `thiserror`.
Now there are more error kinds to be able to see the different kinds directly in src/error.rs
To ensure the behaviour is as expected, I also introduce a further test, which checks for a uniqueness failure.
Co-authored-by: Sculas <contact@sculas.xyz>