Comments (11)
Okay, good to know. Thanks.
from sea-orm.
@billy1624 can we also run our test suite using tokio?
from sea-orm.
Can you setup an minimal reproducible example under /examples?
from sea-orm.
I've fixed it locally... the quick fix seems to be changing the definition of trait Iden
in sea-query to:
pub trait Iden: Send + Sync {
...
}
This is to enforce the type is Sync
from sea-orm.
Great finding. Can we instead do it inside SeaORM, changing IdenStatic instead of Iden?
pub trait IdenStatic: Iden + Copy + Debug + Send + Sync + 'static {
I am trying to understand the problem
from sea-orm.
I've tried removing Send + Sync from Iden
trait in sea-query and adding it to IdenStatic
like you suggested, but the errors come back.
T inside Arc<T>
should be Send + Sync for the whole Arc to be Send + Sync.
https://doc.rust-lang.org/std/sync/struct.Arc.html#thread-safety
It says:
Arc<T>
will implementSend
andSync
as long as theT
implementsSend
andSync
. Why can’t you put a non-thread-safe typeT
in anArc<T>
to make it thread-safe? This may be a bit counter-intuitive at first: after all, isn’t the point ofArc<T>
thread safety? The key is this:Arc<T>
makes it thread safe to have multiple ownership of the same data, but it doesn’t add thread safety to its data.
Perhaps sea-query should add Send + Sync
to the Iden trait only if "thread-safe"
flag is enabled.
from sea-orm.
Btw, any idea how can I add a test case to our test suite for this?
Because it worked in our async_std examples.
It might be specific to tokio?
from sea-orm.
Btw, any idea how can I add a test case to our test suite for this?
Perhaps just making a tokio app and executing your query in a tokio spawned task:
tokio::spawn(async move {
MyEntity::find().one(&db).await;
})
.await;
It might be specific to tokio?
Perhaps... but I think it might just be any app that uses multiple threads.
from sea-orm.
Planning to do so. Running doctest & unit test on all supported runtime.
from sea-orm.
Planning to do so. Running doctest & unit test on all supported runtime.
See #91
from sea-orm.
I verified that enabling thread-safe
on SeaQuery did solve the issue.
from sea-orm.
Related Issues (20)
- `ValueTypeErr` crash when using `ArrayType::Decimal` that contains `None` entries
- Generated Rust enum ordering does not match underlying database enum ordering HOT 1
- Postgres: SET TRANSACTION ISOLATION LEVEL & ACCESS MODE could be combined into a single statement
- SQLite: Format of DateTimeUtc is wrong HOT 14
- mismatched types, sqlx_postgres::types::oid::Oid>` (as SQL type `OID`) is not compatible with SQL type `INT4` in PostgreSQL
- Vulnerability in the `rsa` (a recursive dependency of SeaORM) HOT 1
- Issue when using `on_conflict` with sqlite HOT 1
- Syntax error when trying to drop multiple tables in migrations with SQLite HOT 1
- does postgres int8 work? HOT 2
- [Testing] Error: `A null value was encountered while decoding "num_items"` when testing pagination and counting HOT 1
- support sqlx v0.8 HOT 1
- sea-orm-cli 1.0 doesn't support mysql type: `bit` HOT 2
- VarBinary(16) column breaks DeriveEntityModel derive
- sea-orm-cli 1.0 generate entity from mysql generates String for MediumBlob fields
- Timezone offset information lost when reading a ChronoDateTimeWithTimeZone HOT 1
- Cannot run sea-orm-cli with feature codegen without sqlite as a dependency HOT 1
- `schema::custom()` requires `col` and `name` to be of same type
- Vec<RoleEnum> in SeaORM Entity Model Causes Compilation Error HOT 1
- No reference to features list or alternate DB connectors in docs.
- Support for `HashMap`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sea-orm.