pub struct DefineField {
pub path: Spanned<Idiom>,
pub table: Spanned<String>,
pub ty: Option<Spanned<TypeExpr>>,
pub overwrite: bool,
pub default: Option<Spanned<Expr>>,
pub value: Option<Spanned<Expr>>,
pub computed: Option<Spanned<Expr>>,
pub reference: bool,
pub assert: Option<Spanned<Expr>>,
pub readonly: bool,
pub permissions: Vec<Spanned<Expr>>,
}Expand description
DEFINE FIELD — a (possibly nested) field on a table, with its
declared type.
Fields§
§path: Spanned<Idiom>The (possibly nested) field path.
table: Spanned<String>The table the field belongs to.
ty: Option<Spanned<TypeExpr>>TYPE <type> — the declared field type, if any.
overwrite: boolOVERWRITE — redefine an existing field.
default: Option<Spanned<Expr>>DEFAULT <expr> — supplied when a row is created without the field.
value: Option<Spanned<Expr>>VALUE <expr> — the field is computed; writes are overwritten.
computed: Option<Spanned<Expr>>COMPUTED <expr> — the field is derived from an expression and never
stored (SurrealDB 3.0). Like VALUE, its type is the expression’s; a
common form is a record-reference back-traversal (COMPUTED <~team).
reference: boolREFERENCE — the field’s record<...> link participates in reference
traversal (<~), so a back-reference on the target table can resolve
through it.
assert: Option<Spanned<Expr>>ASSERT <expr> — must hold for every write ($value in scope).
readonly: boolREADONLY — writable only at creation.
permissions: Vec<Spanned<Expr>>PERMISSIONS FOR <action> WHERE <expr> predicate expressions. Each
WHERE predicate is retained so the analyzer can walk it against the
row; NONE/FULL carry no predicate.
Trait Implementations§
Source§impl Clone for DefineField
impl Clone for DefineField
Source§fn clone(&self) -> DefineField
fn clone(&self) -> DefineField
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more