Skip to main content

surql_parser/upstream/sql/statements/
foreach.rs

1use crate::upstream::fmt::CoverStmts;
2use crate::upstream::sql::{Block, Expr, Param};
3use surrealdb_types::{SqlFormat, ToSql, write_sql};
4#[derive(Clone, Debug, Eq, PartialEq)]
5#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
6pub struct ForeachStatement {
7	pub param: Param,
8	pub range: Expr,
9	pub block: Block,
10}
11impl ToSql for ForeachStatement {
12	fn fmt_sql(&self, f: &mut String, sql_fmt: SqlFormat) {
13		write_sql!(
14			f,
15			sql_fmt,
16			"FOR {} IN {} {}",
17			self.param,
18			CoverStmts(&self.range),
19			self.block
20		)
21	}
22}