cake/select
A DSL to build SELECT queries.
Types
Defines the direction of an OrderBy.
pub type Direction {
Asc
Desc
}
Constructors
-
Asc -
Desc
pub type OrderByDirection =
read_query.OrderByDirection
pub type SelectKind =
read_query.SelectKind
pub type SelectValue =
read_query.SelectValue
Functions
pub fn alias(
value vl: SelectValue,
alias als: String,
) -> SelectValue
Creates an alias off a String.
pub fn all(select slct: Select) -> Select
Sets the kind of the Select query to
return duplicates which is the default.
pub fn comment(
select slct: Select,
comment cmmnt: String,
) -> Select
Appends a Comment to the Select query.
pub fn distinct(select slct: Select) -> Select
Sets the kind of the Select query to
return distinct rows only.
pub fn epilog(select slct: Select, epilog eplg: String) -> Select
Appends an Epilog to the Select query.
pub fn fragment(fragment frgmt: Fragment) -> SelectValue
Creates a SelectFragment off a Fragment.
pub fn from_query(
select slct: Select,
sub_query sb_qry: ReadQuery,
alias als: String,
) -> Select
Sets the FROM clause of the Select query to an aliased sub-query.
pub fn from_table(
select slct: Select,
name tbl_nm: String,
) -> Select
Sets the FROM clause of the Select query to a table name.
pub fn get_comment(select slct: Select) -> Comment
Gets the Comment from the Select query.
pub fn get_epilog(select slct: Select) -> Epilog
Gets the Epilog from the Select query.
pub fn get_group_by(select slct: Select) -> GroupBy
Gets GroupBy in the Select query.
pub fn get_having(select slct: Select) -> Where
GetsHAVING in the Select query.
See function having on details why this returns a Where.
pub fn get_kind(
select slct: Select,
kind knd: SelectKind,
) -> Select
Gets the kind of the Select query.
pub fn get_order_by(select slct: Select) -> OrderBy
Gets the OrderBy from the Select query.
pub fn get_select(select slct: Select) -> Selects
Gets the SelectValues of the Select query.
pub fn group_by(
select slct: Select,
group_by grpb: String,
) -> Select
Sets or appends GroupBy a single into an existing GroupBy.
pub fn group_bys(
select slct: Select,
group_bys grpbs: List(String),
) -> Select
Sets or appends a list of GroupBy into an existing GroupBy.
pub fn having(select slct: Select, having whr: Where) -> Select
Sets an AndWhere or appends into an existing AndWhere.
- If the outermost
Whereis anAndWhere, the newWhereis appended to the list withinAndWhere. - If the query does not have a
Whereclause, the givenWhereis set instead. - If the outermost
Whereis any other kind ofWhere, this and the current outermostWhereare wrapped in anAndWhere.
NOTICE: HAVING allows to specify constraints much like WHERE, but
filters the results after GROUP BY is applied instead of before. Because
HAVING uses the same semantics as WHERE, it
takes a Where.
pub fn joins(
select slct: Select,
joins jns: List(Join),
) -> Select
Adds Joins to the Select query.
pub fn limit(select slct: Select, limit lmt: Int) -> Select
Sets a Limit in the Select query.
pub fn no_comment(select slct: Select) -> Select
Removes the Comment from the Select query.
pub fn no_epilog(select slct: Select) -> Select
Removes the Epilog from the Select query.
pub fn no_from(select slct: Select) -> Select
Removes the FROM clause of the Select query.
pub fn no_group_by(select slct: Select) -> Select
Removes GroupBy from the Select query.
pub fn no_order_by(select slct: Select) -> Select
Removes the OrderBy from the Select query.
pub fn no_where(select slct: Select) -> Select
Removes the Where from the Select query.
pub fn offset(select slct: Select, offset offst: Int) -> Select
Sets an Offset in the Select query.
pub fn or_having(
select slct: Select,
having whr: Where,
) -> Select
Sets an OrWhere or appends into an existing OrWhere.
- If the outermost
Whereis anOrWhere, the newWhereis appended to the list withinOrWhere. - If the query does not have a
Whereclause, the givenWhereis set instead. - If the outermost
Whereis any other kind ofWhere, this and the current outermostWhereare wrapped in anOrWhere.
See function having on details why this takes a Where.
pub fn or_where(select slct: Select, where whr: Where) -> Select
Sets an OrWhere or appends into an existing OrWhere.
- If the outermost
Whereis anOrWhere, the newWhereis appended to the list withinOrWhere. - If the query does not have a
Whereclause, the givenWhereis set instead. - If the outermost
Whereis any other kind ofWhere, this and the current outermostWhereare wrapped in anOrWhere.
pub fn order_by(
select slct: Select,
by ordb: String,
direction dir: Direction,
) -> Select
Creates or appends an OrderBy a column with a direction.
The direction can either ASC or DESC.
pub fn order_by_asc(
select slct: Select,
by ordb: String,
) -> Select
Creates or appends an ascending OrderBy.
pub fn order_by_asc_nulls_first(
select slct: Select,
by ordb: String,
) -> Select
Creates or appends an ascending OrderBy with NULLS FIRST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS FIRST out of the box.
pub fn order_by_asc_nulls_last(
select slct: Select,
by ordb: String,
) -> Select
Creates or appends an ascending OrderBy with NULLS LAST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS LAST out of the box.
pub fn order_by_desc(
select slct: Select,
by ordb: String,
) -> Select
Creates or appends a descending OrderBy.
pub fn order_by_desc_nulls_first(
select slct: Select,
by ordb: String,
) -> Select
Creates or appends a descending order with NULLS FIRST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS FIRST out of the box.
pub fn order_by_desc_nulls_last(
select slct: Select,
by ordb: String,
) -> Select
Creates or appends a descending OrderBy with NULLS LAST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS LAST out of the box.
pub fn replace_group_by(
select slct: Select,
group_by grpb: String,
) -> Select
Replaces GroupBy with a single GroupBy.
pub fn replace_group_bys(
select slct: Select,
group_bys grpbs: List(String),
) -> Select
Replaces GroupBy with a list of GroupBys.
pub fn replace_having(
select slct: Select,
having whr: Where,
) -> Select
Replaces HAVING in the Select query.
See function having on details why this takes a Where.
pub fn replace_join(select slct: Select, join jn: Join) -> Select
Replaces any Joins of the Select query with a signle Join.
pub fn replace_joins(
select slct: Select,
joins jns: List(Join),
) -> Select
Replaces any Joins of the Select query with the given Joins.
pub fn replace_order_by(
select slct: Select,
by ordb: String,
direction dir: Direction,
) -> Select
Replaces the OrderBy a column with a direction.
pub fn replace_order_by_asc(
select slct: Select,
by ordb: String,
) -> Select
Replaces the OrderBy a single ascending OrderBy.
pub fn replace_order_by_asc_nulls_first(
select slct: Select,
by ordb: String,
) -> Select
Replaces the OrderBy a single ascending OrderBy with NULLS FIRST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS FIRST out of the box.
pub fn replace_order_by_asc_nulls_last(
select slct: Select,
by ordb: String,
) -> Select
Replaces the OrderBy a single ascending OrderBy with NULLS LAST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS LAST out of the box.
pub fn replace_order_by_desc(
select slct: Select,
by ordb: String,
) -> Select
Replaces the OrderBy a single descending order.
pub fn replace_order_by_desc_nulls_first(
select slct: Select,
by ordb: String,
) -> Select
Replaces the OrderBy a single descending order with NULLS FIRST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS FIRST out of the box.
pub fn replace_order_by_desc_nulls_last(
select slct: Select,
by ordb: String,
) -> Select
Replaces the OrderBy a single descending OrderBy with NULLS LAST.
NOTICE: 🦭MariaDB and 🐬MySQL do not support NULLS LAST out of the box.
pub fn replace_select(
select slct: Select,
select_value sv: SelectValue,
) -> Select
Add a SelectValues to the Select query.
If the query already has any SelectValues, they are replaced.
pub fn replace_select_col(
select slct: Select,
name nm: String,
) -> Select
Add a column name to the Select query as a SelectValue.
If the query already has any SelectValues, they are replaced.
pub fn replace_select_cols(
select slct: Select,
select_cols scls: List(String),
) -> Select
Adds many column names as SelectValues to the Select query.
If the query already has any SelectValues, the new ones are replaced.
pub fn replace_selects(
select slct: Select,
select_values svs: List(SelectValue),
) -> Select
Adds many SelectValues to the Select query.
If the query already has any SelectValues, they are replaced.
pub fn replace_where(
select slct: Select,
where whr: Where,
) -> Select
Replaces the Where in the Select query.
pub fn select(
select slct: Select,
select_value sv: SelectValue,
) -> Select
Add a SelectValue to the Select query.
If the query already has any SelectValues, the new one is appended.
pub fn select_col(select slct: Select, name nm: String) -> Select
Add a column name to the Select query as a SelectValue.
If the query already has any SelectValues, the new one is appended.
pub fn select_cols(
select slct: Select,
select_cols scls: List(String),
) -> Select
Adds many column names as SelectValues to the Select query.
If the query already has any SelectValues, the new ones are appended.
pub fn selects(
select slct: Select,
select_values svs: List(SelectValue),
) -> Select
Adds many SelectValues to the Select query.
If the query already has any SelectValues, the new ones are appended.
pub fn to_query(select slct: Select) -> ReadQuery
Creates a ReadQuery from a Select query.
pub fn where(select slct: Select, where whr: Where) -> Select
Sets an AndWhere or appends into an existing AndWhere.
- If the outermost
Whereis anAndWhere, the newWhereis appended to the list withinAndWhere. - If the query does not have a
Whereclause, the givenWhereis set instead. - If the outermost
Whereis any other kind ofWhere, this and the current outermostWhereare wrapped in anAndWhere.
pub fn xor_having(
select slct: Select,
having whr: Where,
) -> Select
Sets an XorWhere or appends into an existing XorWhere.
- If the outermost
Whereis anXorWhere, the newWhereis appended to the list withinXorWhere. - If the query does not have a
Whereclause, the givenWhereis set instead. - If the outermost
Whereis any other kind ofWhere, this and the current outermostWhereare wrapped in anXorWhere.
See function having on details why this takes a Where.
NOTICE: This operator does not exist in 🐘PostgreSQL or 🪶SQLite,
and Cake generates equivalent SQL using OR and AND and NOT.
This operator exists in 🦭MariaDB and 🐬MySQL.
pub fn xor_where(select slct: Select, where whr: Where) -> Select
Sets an XorWhere or appends into an existing XorWhere.
- If the outermost
Whereis anXorWhere, the newWhereis appended to the list withinXorWhere. - If the query does not have a
Whereclause, the givenWhereis set instead. - If the outermost
Whereis any other kind ofWhere, this and the current outermostWhereare wrapped in anXorWhere.
NOTICE: This operator does not exist in 🐘PostgreSQL or 🪶SQLite,
and Cake generates equivalent SQL using OR and AND and NOT.
This operator exists in 🦭MariaDB and 🐬MySQL.