pub struct QueryAnalysis {
pub valid: bool,
pub query_type: String,
pub has_star: bool,
pub star_locations: Vec<StarLocation>,
pub tables: Vec<String>,
pub columns: Vec<String>,
pub ctes: Vec<CteAnalysis>,
pub from_clause: Option<FromClauseInfo>,
pub where_clause: Option<WhereClauseInfo>,
pub errors: Vec<String>,
}
Expand description
Comprehensive query analysis result
Fields§
§valid: bool
Whether the query is syntactically valid
query_type: String
Type of query: “SELECT”, “CTE”, etc.
has_star: bool
Whether query contains SELECT *
star_locations: Vec<StarLocation>
Locations of SELECT * in query
tables: Vec<String>
Tables referenced in query
columns: Vec<String>
Columns explicitly referenced
ctes: Vec<CteAnalysis>
CTEs in query
from_clause: Option<FromClauseInfo>
FROM clause information
where_clause: Option<WhereClauseInfo>
WHERE clause information
errors: Vec<String>
Parse/validation errors
Trait Implementations§
Source§impl Debug for QueryAnalysis
impl Debug for QueryAnalysis
Source§impl<'de> Deserialize<'de> for QueryAnalysis
impl<'de> Deserialize<'de> for QueryAnalysis
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for QueryAnalysis
impl RefUnwindSafe for QueryAnalysis
impl Send for QueryAnalysis
impl Sync for QueryAnalysis
impl Unpin for QueryAnalysis
impl UnwindSafe for QueryAnalysis
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more