surql_parser/upstream/sql/statements/
foreach.rs1use 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}