pub enum CheckExpr {
Show 19 variants
GreaterThan {
column: String,
value: i64,
},
GreaterOrEqual {
column: String,
value: i64,
},
LessThan {
column: String,
value: i64,
},
LessOrEqual {
column: String,
value: i64,
},
Between {
column: String,
low: i64,
high: i64,
},
In {
column: String,
values: Vec<String>,
},
InIntegers {
column: String,
values: Vec<i64>,
},
CompareColumns {
left_column: String,
op: CheckComparisonOp,
right_column: String,
},
TextCompare {
column: String,
op: CheckComparisonOp,
value: String,
},
CompareColumnToCoalesce {
left_column: String,
op: CheckComparisonOp,
coalesce_column: String,
fallback: String,
fallback_cast: Option<String>,
},
LowerTrimEquals {
column: String,
},
Regex {
column: String,
pattern: String,
},
MaxLength {
column: String,
max: usize,
},
MinLength {
column: String,
min: usize,
},
NotNull {
column: String,
},
And(Box<CheckExpr>, Box<CheckExpr>),
Or(Box<CheckExpr>, Box<CheckExpr>),
Not(Box<CheckExpr>),
Sql(String),
}Expand description
CHECK constraint expression (AST-native where possible, raw SQL fallback when needed)
Variants§
GreaterThan
column > value
GreaterOrEqual
column >= value
LessThan
column < value
LessOrEqual
column <= value
Between
value BETWEEN low AND high
In
column IN (values)
InIntegers
column IN (integer values)
CompareColumns
left_column op right_column
Fields
§
op: CheckComparisonOpComparison operator.
TextCompare
column op ‘text’
Fields
§
op: CheckComparisonOpComparison operator.
CompareColumnToCoalesce
column op COALESCE(other_column, ‘fallback’::type)
Fields
§
op: CheckComparisonOpComparison operator.
LowerTrimEquals
column = lower(btrim(column))
Regex
column ~ pattern (regex)
MaxLength
LENGTH(column) <= max
MinLength
LENGTH(column) >= min
NotNull
column IS NOT NULL
And(Box<CheckExpr>, Box<CheckExpr>)
Logical AND of two expressions.
Or(Box<CheckExpr>, Box<CheckExpr>)
Logical OR of two expressions.
Not(Box<CheckExpr>)
Logical NOT of an expression.
Sql(String)
SQL boolean expression (preserved as-is).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CheckExpr
impl RefUnwindSafe for CheckExpr
impl Send for CheckExpr
impl Sync for CheckExpr
impl Unpin for CheckExpr
impl UnsafeUnpin for CheckExpr
impl UnwindSafe for CheckExpr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more