surql_parser/upstream/sql/
group.rs1use crate::upstream::sql::idiom::Idiom;
2#[derive(Clone, Debug, Default, PartialEq, Eq)]
3pub struct Groups(pub Vec<Group>);
4impl surrealdb_types::ToSql for Groups {
5 fn fmt_sql(&self, f: &mut String, fmt: surrealdb_types::SqlFormat) {
6 if self.0.is_empty() {
7 f.push_str("GROUP ALL");
8 } else {
9 f.push_str("GROUP BY ");
10 for (i, item) in self.0.iter().enumerate() {
11 if i > 0 {
12 fmt.write_separator(f);
13 }
14 item.fmt_sql(f, fmt);
15 }
16 }
17 }
18}
19#[derive(Clone, Debug, Default, PartialEq, Eq)]
20#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
21pub struct Group(
22 #[cfg_attr(
23 feature = "arbitrary",
24 arbitrary(with = crate::upstream::sql::arbitrary::basic_idiom)
25 )]
26 pub Idiom,
27);
28impl surrealdb_types::ToSql for Group {
29 fn fmt_sql(&self, f: &mut String, fmt: surrealdb_types::SqlFormat) {
30 self.0.fmt_sql(f, fmt);
31 }
32}