Skip to main content

surql_parser/upstream/sql/statements/
use.rs

1use 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}