pub struct Canonicalizer<'a> { /* private fields */ }Expand description
Canonicalizes predicates under one SQL dialect.
The dialect decides how identifiers fold, so it decides which two spellings mean one column. Build this from the dialect that parsed whatever you hand it.
Implementations§
Source§impl<'a> Canonicalizer<'a>
impl<'a> Canonicalizer<'a>
Sourcepub fn normalize_sql(&self, sql: &str) -> Result<String, CanonicalizeError>
pub fn normalize_sql(&self, sql: &str) -> Result<String, CanonicalizeError>
Parses one SELECT and returns canonical text for its WHERE clause.
The canonical text is verified to survive being read back as itself, so a predicate whose canonical form would read as something else is rejected instead of hashed.
Sourcepub fn normalize_where_clause(
&self,
where_expr: Option<&Expr>,
) -> Result<String, CanonicalizeError>
pub fn normalize_where_clause( &self, where_expr: Option<&Expr>, ) -> Result<String, CanonicalizeError>
Canonicalizes a parsed WHERE clause in O(n log n) time for boolean chains and O(n)
otherwise.
where_expr MUST have been parsed with this canonicalizer’s dialect, which decides
how names fold and which reads the canonical text back to check it.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Canonicalizer<'a>
impl<'a> !Send for Canonicalizer<'a>
impl<'a> !Sync for Canonicalizer<'a>
impl<'a> !UnwindSafe for Canonicalizer<'a>
impl<'a> Freeze for Canonicalizer<'a>
impl<'a> Unpin for Canonicalizer<'a>
impl<'a> UnsafeUnpin for Canonicalizer<'a>
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