sqlmo 0.24.1

SQL data primitives. Use it to generate SQL queries, auto-generate SQL migrations, and more.
Documentation
use crate::{Dialect, Select, ToSql};

pub struct Union {
    pub all: bool,
    pub queries: Vec<Select>,
}

impl ToSql for Union {
    fn write_sql(&self, buf: &mut String, dialect: Dialect) {
        let all = if self.all { "ALL " } else { "" };
        if self.queries.is_empty() {
            return;
        }
        let first = self.queries.iter().next().unwrap();
        first.write_sql(buf, dialect);
        for q in self.queries.iter().skip(1) {
            buf.push_str(" UNION ");
            buf.push_str(all);
            q.write_sql(buf, dialect);
        }
    }
}