Skip to main content

surql_parser/upstream/sql/statements/
output.rs

1use crate::upstream::fmt::CoverStmts;
2use crate::upstream::sql::Expr;
3use crate::upstream::sql::fetch::Fetchs;
4use surrealdb_types::{SqlFormat, ToSql, write_sql};
5#[derive(Clone, Debug, Eq, PartialEq)]
6#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
7pub struct OutputStatement {
8	pub what: Expr,
9	pub fetch: Option<Fetchs>,
10}
11impl ToSql for OutputStatement {
12	fn fmt_sql(&self, f: &mut String, sql_fmt: SqlFormat) {
13		write_sql!(f, sql_fmt, "RETURN {}", CoverStmts(&self.what));
14		if let Some(ref v) = self.fetch {
15			write_sql!(f, sql_fmt, " {}", v);
16		}
17	}
18}