From fa94521c251d77c184f86c72182cdb38ba3f7855 Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Tue, 6 Dec 2022 12:00:43 +0800 Subject: [PATCH] [issues] fully qualified `IdenStatic::as_str()` (#1280) --- issues/1278/Cargo.toml | 17 +++++++++++ issues/1278/src/entity.rs | 14 +++++++++ issues/1278/src/main.rs | 36 +++++++++++++++++++++++ sea-orm-macros/src/derives/column.rs | 2 +- sea-orm-macros/src/derives/entity.rs | 2 +- sea-orm-macros/src/derives/primary_key.rs | 2 +- 6 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 issues/1278/Cargo.toml create mode 100644 issues/1278/src/entity.rs create mode 100644 issues/1278/src/main.rs diff --git a/issues/1278/Cargo.toml b/issues/1278/Cargo.toml new file mode 100644 index 00000000..7be6742e --- /dev/null +++ b/issues/1278/Cargo.toml @@ -0,0 +1,17 @@ +[workspace] +# A separate workspace + +[package] +name = "sea-orm-issues-1278" +version = "0.1.0" +edition = "2021" +publish = false + +[dependencies] +serde = "^1" +tokio = { version = "^1", features = ["rt", "rt-multi-thread", "macros"] } + +[dependencies.sea-orm] +path = "../../" +default-features = false +features = ["macros", "runtime-tokio-native-tls"] diff --git a/issues/1278/src/entity.rs b/issues/1278/src/entity.rs new file mode 100644 index 00000000..6857d07d --- /dev/null +++ b/issues/1278/src/entity.rs @@ -0,0 +1,14 @@ +use sea_orm::entity::prelude::*; + +#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] +#[sea_orm(table_name = "pool")] +pub struct Model { + #[sea_orm(primary_key)] + pub id: i32, + pub name: String, +} + +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] +pub enum Relation {} + +impl ActiveModelBehavior for ActiveModel {} diff --git a/issues/1278/src/main.rs b/issues/1278/src/main.rs new file mode 100644 index 00000000..93a14246 --- /dev/null +++ b/issues/1278/src/main.rs @@ -0,0 +1,36 @@ +use sea_orm::{ + Database, DeriveColumn, EntityTrait, EnumIter, FromQueryResult, QuerySelect, +}; + +mod entity; + +#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] +enum QueryAs { + PoolName, +} + +#[derive(Debug, FromQueryResult)] +struct PoolResult { + name: String, +} + +#[tokio::main] +async fn main() { + let db = Database::connect("xxxx").await.unwrap(); + + let result1 = entity::Entity::find() + .select_only() + .column(entity::Column::Name) + .into_model::() + .all(&db) + .await + .unwrap(); + + let result2: Vec = entity::Entity::find() + .select_only() + .column_as(entity::Column::Name, QueryAs::PoolName) + .into_values::<_, QueryAs>() + .all(&db) + .await + .unwrap(); +} \ No newline at end of file diff --git a/sea-orm-macros/src/derives/column.rs b/sea-orm-macros/src/derives/column.rs index 3a0f9314..071331ae 100644 --- a/sea-orm-macros/src/derives/column.rs +++ b/sea-orm-macros/src/derives/column.rs @@ -134,7 +134,7 @@ pub fn expand_derive_custom_column(ident: &Ident, data: &Data) -> syn::Result syn::Result