diff --git a/Cargo.toml b/Cargo.toml index fa32153f..1a0795de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,8 +34,8 @@ log = { version = "^0.4" } tracing = { version = "^0.1", features = ["log"] } rust_decimal = { version = "^1", optional = true } sea-orm-macros = { version = "^0.10.0", path = "sea-orm-macros", optional = true } -sea-query = { version = "^0.27", git = "https://github.com/SeaQL/sea-query", features = ["thread-safe"] } -sea-query-binder = { version = "^0.1", git = "https://github.com/SeaQL/sea-query", optional = true } +sea-query = { version = "^0.27", features = ["thread-safe"] } +sea-query-binder = { version = "^0.2", optional = true } sea-strum = { version = "^0.23", features = ["derive", "sea-orm"] } serde = { version = "^1.0", features = ["derive"] } serde_json = { version = "^1.0", optional = true } @@ -45,6 +45,10 @@ ouroboros = "0.15" url = "^2.2" once_cell = "1.8" +[patch.crates-io] +sea-query = { git = "https://github.com/SeaQL/sea-query", branch = "sqlite-bind-decimals" } +sea-query-binder = { git = "https://github.com/SeaQL/sea-query", branch = "sqlite-bind-decimals" } + [dev-dependencies] smol = { version = "^1.2" } smol-potat = { version = "^1.1" } diff --git a/issues/324/src/model.rs b/issues/324/src/model.rs index 9ec35a07..ad12d15e 100644 --- a/issues/324/src/model.rs +++ b/issues/324/src/model.rs @@ -72,6 +72,10 @@ macro_rules! into_sea_query_value { stringify!($newtype).to_owned() } + fn array_type() -> sea_orm::sea_query::ArrayType { + sea_orm::sea_query::ArrayType::$name + } + fn column_type() -> sea_orm::sea_query::ColumnType { sea_orm::sea_query::ColumnType::$name } diff --git a/issues/400/src/model.rs b/issues/400/src/model.rs index a53eeb74..4a207ce1 100644 --- a/issues/400/src/model.rs +++ b/issues/400/src/model.rs @@ -73,6 +73,10 @@ impl sea_orm::sea_query::ValueType for AccountId { stringify!(AccountId).to_owned() } + fn array_type() -> sea_orm::sea_query::ArrayType { + sea_orm::sea_query::ArrayType::Uuid + } + fn column_type() -> sea_orm::sea_query::ColumnType { sea_orm::sea_query::ColumnType::Uuid } diff --git a/sea-orm-codegen/Cargo.toml b/sea-orm-codegen/Cargo.toml index 9dab2e7b..b17a19cb 100644 --- a/sea-orm-codegen/Cargo.toml +++ b/sea-orm-codegen/Cargo.toml @@ -17,7 +17,7 @@ name = "sea_orm_codegen" path = "src/lib.rs" [dependencies] -sea-query = { version = "^0.27", git = "https://github.com/SeaQL/sea-query", features = ["thread-safe"] } +sea-query = { version = "^0.27", features = ["thread-safe"] } syn = { version = "^1", default-features = false, features = [ "derive", "parsing", diff --git a/sea-orm-macros/src/derives/active_enum.rs b/sea-orm-macros/src/derives/active_enum.rs index c7693ae3..7d72c67b 100644 --- a/sea-orm-macros/src/derives/active_enum.rs +++ b/sea-orm-macros/src/derives/active_enum.rs @@ -335,6 +335,10 @@ impl ActiveEnum { <::Value as sea_orm::sea_query::ValueType>::type_name() } + fn array_type() -> sea_orm::sea_query::ArrayType { + unimplemented!("Array of Enum is not supported") + } + fn column_type() -> sea_orm::sea_query::ColumnType { ::db_type() .get_column_type() diff --git a/sea-orm-macros/src/derives/try_getable_from_json.rs b/sea-orm-macros/src/derives/try_getable_from_json.rs index 957cee3d..43cdf637 100644 --- a/sea-orm-macros/src/derives/try_getable_from_json.rs +++ b/sea-orm-macros/src/derives/try_getable_from_json.rs @@ -28,6 +28,10 @@ pub fn expand_derive_from_json_query_result(ident: Ident) -> syn::Result sea_orm::sea_query::ArrayType { + sea_orm::sea_query::ArrayType::Json + } + fn column_type() -> sea_orm::sea_query::ColumnType { sea_orm::sea_query::ColumnType::Json } diff --git a/src/driver/sqlx_mysql.rs b/src/driver/sqlx_mysql.rs index c970a2c3..ac53f556 100644 --- a/src/driver/sqlx_mysql.rs +++ b/src/driver/sqlx_mysql.rs @@ -2,11 +2,11 @@ use sea_query::Values; use std::{future::Future, pin::Pin, sync::Arc}; use sqlx::{ - mysql::{MySqlArguments, MySqlConnectOptions, MySqlQueryResult, MySqlRow}, + mysql::{MySqlConnectOptions, MySqlQueryResult, MySqlRow}, MySql, MySqlPool, }; -use sea_query_binder::{SqlxBinder, SqlxValues}; +use sea_query_binder::SqlxValues; use tracing::instrument; use crate::{ diff --git a/src/driver/sqlx_postgres.rs b/src/driver/sqlx_postgres.rs index 7737c08f..7ae5cd40 100644 --- a/src/driver/sqlx_postgres.rs +++ b/src/driver/sqlx_postgres.rs @@ -1,5 +1,4 @@ use sea_query::Values; -use sea_query_binder::SqlxValues; use std::{future::Future, pin::Pin, sync::Arc}; use sqlx::{ @@ -7,6 +6,7 @@ use sqlx::{ PgPool, Postgres, }; +use sea_query_binder::SqlxValues; use tracing::instrument; use crate::{ diff --git a/src/entity/active_enum.rs b/src/entity/active_enum.rs index 86bd126b..19a48a1b 100644 --- a/src/entity/active_enum.rs +++ b/src/entity/active_enum.rs @@ -14,7 +14,10 @@ use sea_query::{DynIden, Nullable, Value, ValueType}; /// > See [DeriveActiveEnum](sea_orm_macros::DeriveActiveEnum) for the full specification of macro attributes. /// /// ```rust -/// use sea_orm::entity::prelude::*; +/// use sea_orm::{ +/// entity::prelude::*, +/// sea_query::{DynIden, SeaRc}, +/// }; /// /// // Using the derive macro /// #[derive(Debug, PartialEq, EnumIter, DeriveActiveEnum)] diff --git a/src/query/insert.rs b/src/query/insert.rs index 3ca6f82b..f95e4464 100644 --- a/src/query/insert.rs +++ b/src/query/insert.rs @@ -138,7 +138,7 @@ where } } self.query.columns(columns); - self.query.exprs_panic(values); + self.query.values_panic(values); self } diff --git a/src/query/update.rs b/src/query/update.rs index 63adac7a..b5d404a0 100644 --- a/src/query/update.rs +++ b/src/query/update.rs @@ -110,7 +110,7 @@ where let av = self.model.get(col); if av.is_set() { let expr = cast_text_as_enum(Expr::val(av.into_value().unwrap()), &col); - self.query.value_expr(col, expr); + self.query.value(col, expr); } } self @@ -200,7 +200,7 @@ where where T: IntoIden, { - self.query.col_expr(col, expr); + self.query.value(col, expr); self } } diff --git a/src/schema/entity.rs b/src/schema/entity.rs index 089a4fe5..28bca9d5 100644 --- a/src/schema/entity.rs +++ b/src/schema/entity.rs @@ -1,10 +1,10 @@ use crate::{ - unpack_table_ref, ActiveEnum, ColumnDef, ColumnTrait, ColumnType, DbBackend, EntityTrait, - Identity, Iterable, PrimaryKeyToColumn, PrimaryKeyTrait, RelationTrait, Schema, + unpack_table_ref, ActiveEnum, ColumnTrait, ColumnType, DbBackend, EntityTrait, Identity, + Iterable, PrimaryKeyToColumn, PrimaryKeyTrait, RelationTrait, Schema, }; use sea_query::{ extension::postgres::{Type, TypeCreateStatement}, - ForeignKeyCreateStatement, Iden, Index, IndexCreateStatement, TableCreateStatement, + ColumnDef, ForeignKeyCreateStatement, Iden, Index, IndexCreateStatement, TableCreateStatement, }; impl Schema { diff --git a/tests/common/features/json_vec.rs b/tests/common/features/json_vec.rs index aebd6799..8e9aca5b 100644 --- a/tests/common/features/json_vec.rs +++ b/tests/common/features/json_vec.rs @@ -45,6 +45,10 @@ impl sea_query::ValueType for StringVec { stringify!(StringVec).to_owned() } + fn array_type() -> sea_orm::sea_query::ArrayType { + sea_orm::sea_query::ArrayType::String + } + fn column_type() -> sea_query::ColumnType { sea_query::ColumnType::String(None) }