Macro diesel::allow_columns_to_appear_in_same_group_by_clause[][src]

macro_rules! allow_columns_to_appear_in_same_group_by_clause {
    ($($left_path:tt)::+, $($right_path:tt)::+ $(,)?) => { ... };
    ($($left_path:tt)::+, $($right_path:tt)::+, $($other: tt)*) => { ... };
    ($last_col:ty,) => { ... };
    () => { ... };

Allow two or more columns which are otherwise unrelated to be used together in a group by clause.

This macro must be invoked any time two columns need to appear in the same group by clause. When this macro is invoked with more than 2 columns, every combination of those columns will be allowed to appear together.


// This would be required to do
// `users::table.inner_join(posts::table).group_by((users::name, users::hair_color, posts::id))`
allow_columns_to_appear_in_same_group_by_clause!(users::name, users::hair_color, posts::id);

When more than two columns are passed, the relevant code is generated for every combination of those columns. This code would be equivalent to the previous example.

allow_columns_to_appear_in_same_group_by_clause!(users::name, users::hair_color);
allow_columns_to_appear_in_same_group_by_clause!(users::name, posts::id);
allow_columns_to_appear_in_same_group_by_clause!(users::hair_color, posts::id);