1use crate::{Dialect, Select, ToSql};
2
3pub struct Union {
4 pub all: bool,
5 pub queries: Vec<Select>,
6}
7
8impl ToSql for Union {
9 fn write_sql(&self, buf: &mut String, dialect: Dialect) {
10 let all = if self.all { "ALL " } else { "" };
11 if self.queries.is_empty() {
12 return;
13 }
14 let first = self.queries.iter().next().unwrap();
15 first.write_sql(buf, dialect);
16 for q in self.queries.iter().skip(1) {
17 buf.push_str(" UNION ");
18 buf.push_str(all);
19 q.write_sql(buf, dialect);
20 }
21 }
22}