From a0be9239bd67c17998d947108024c1b4bc906a8e Mon Sep 17 00:00:00 2001 From: Chris Tsang Date: Fri, 1 Oct 2021 23:00:55 +0800 Subject: [PATCH] Doc --- src/entity/model.rs | 2 +- src/executor/select.rs | 61 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/src/entity/model.rs b/src/entity/model.rs index f71c1229..318b8e70 100644 --- a/src/entity/model.rs +++ b/src/entity/model.rs @@ -49,7 +49,7 @@ pub trait FromQueryResult: Sized { /// # ]]) /// # .into_connection(); /// # - /// use sea_orm::{entity::*, query::*, tests_cfg::cake, FromQueryResult}; + /// use sea_orm::{query::*, FromQueryResult}; /// /// #[derive(Debug, PartialEq, FromQueryResult)] /// struct SelectResult { diff --git a/src/executor/select.rs b/src/executor/select.rs index 7a10488e..bb386722 100644 --- a/src/executor/select.rs +++ b/src/executor/select.rs @@ -134,16 +134,14 @@ where /// # .append_query_results(vec![vec![ /// # maplit::btreemap! { /// # "cake_name" => Into::::into("Chocolate Forest"), - /// # "num_of_cakes" => Into::::into(1), /// # }, /// # maplit::btreemap! { /// # "cake_name" => Into::::into("New York Cheese"), - /// # "num_of_cakes" => Into::::into(1), /// # }, /// # ]]) /// # .into_connection(); /// # - /// use sea_orm::{entity::*, query::*, tests_cfg::cake, DeriveColumn, EnumIter, TryGetableMany}; + /// use sea_orm::{entity::*, query::*, tests_cfg::cake, DeriveColumn, EnumIter}; /// /// #[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] /// enum QueryAs { @@ -161,7 +159,7 @@ where /// /// assert_eq!( /// res, - /// vec!["Chocolate Forest".to_owned(), "New York Cheese".to_owned(),] + /// vec!["Chocolate Forest".to_owned(), "New York Cheese".to_owned()] /// ); /// # /// # Ok(()) @@ -173,7 +171,60 @@ where /// DbBackend::Postgres, /// r#"SELECT "cake"."name" AS "cake_name" FROM "cake""#, /// vec![] - /// ),] + /// )] + /// ); + /// ``` + /// + /// ``` + /// # #[cfg(all(feature = "mock", feature = "macros"))] + /// # use sea_orm::{error::*, tests_cfg::*, MockDatabase, Transaction, DbBackend}; + /// # + /// # let db = MockDatabase::new(DbBackend::Postgres) + /// # .append_query_results(vec![vec![ + /// # maplit::btreemap! { + /// # "cake_name" => Into::::into("Chocolate Forest"), + /// # "num_of_cakes" => Into::::into(2i64), + /// # }, + /// # ]]) + /// # .into_connection(); + /// # + /// use sea_orm::{entity::*, query::*, tests_cfg::cake, DeriveColumn, EnumIter}; + /// + /// #[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] + /// enum QueryAs { + /// CakeName, + /// NumOfCakes, + /// } + /// + /// # let _: Result<(), DbErr> = smol::block_on(async { + /// # + /// let res: Vec<(String, i64)> = cake::Entity::find() + /// .select_only() + /// .column_as(cake::Column::Name, QueryAs::CakeName) + /// .column_as(cake::Column::Id.count(), QueryAs::NumOfCakes) + /// .group_by(cake::Column::Name) + /// .into_values::<_, QueryAs>() + /// .all(&db) + /// .await?; + /// + /// assert_eq!( + /// res, + /// vec![("Chocolate Forest".to_owned(), 2i64)] + /// ); + /// # + /// # Ok(()) + /// # }); + /// + /// assert_eq!( + /// db.into_transaction_log(), + /// vec![Transaction::from_sql_and_values( + /// DbBackend::Postgres, + /// vec![ + /// r#"SELECT "cake"."name" AS "cake_name", COUNT("cake"."id") AS "num_of_cakes""#, + /// r#"FROM "cake" GROUP BY "cake"."name""#, + /// ].join(" ").as_str(), + /// vec![] + /// )] /// ); /// ``` pub fn into_values(self) -> Selector>