surql_parser/upstream/sql/statements/
use.rs1use crate::upstream::fmt::CoverStmts;
2use crate::upstream::sql::Expr;
3use surrealdb_types::{SqlFormat, ToSql, write_sql};
4#[derive(Clone, Debug, Eq, PartialEq)]
5#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
6pub enum UseStatement {
7 Ns(Expr),
8 Db(Expr),
9 NsDb(Expr, Expr),
10 Default,
11}
12impl ToSql for UseStatement {
13 fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
14 f.push_str("USE");
15 match self {
16 UseStatement::Ns(ns) => write_sql!(f, fmt, " NS {}", CoverStmts(ns)),
17 UseStatement::Db(db) => write_sql!(f, fmt, " DB {}", CoverStmts(db)),
18 UseStatement::NsDb(ns, db) => {
19 write_sql!(f, fmt, " NS {} DB {}", CoverStmts(ns), CoverStmts(db))
20 }
21 UseStatement::Default => write_sql!(f, fmt, " DEFAULT"),
22 }
23 }
24}