Struct sql_parse::Select

source ·
pub struct Select<'a> {
    pub select_span: Span,
    pub flags: Vec<SelectFlag>,
    pub select_exprs: Vec<SelectExpr<'a>>,
    pub from_span: Option<Span>,
    pub table_references: Option<Vec<TableReference<'a>>>,
    pub where_: Option<(Expression<'a>, Span)>,
    pub group_by: Option<(Span, Vec<Expression<'a>>)>,
    pub having: Option<(Expression<'a>, Span)>,
    pub window_span: Option<Span>,
    pub order_by: Option<(Span, Vec<(Expression<'a>, OrderFlag)>)>,
    pub limit: Option<(Span, Option<Expression<'a>>, Expression<'a>)>,
    pub for_update_span: Option<Span>,
}
Expand description

Representation of select Statement

let sql = "SELECT f1,f2 FROM t1 WHERE f3<=10 AND f4='y'";
let stmt = parse_statement(sql, &mut issues, &options);

let s: Select = match stmt {
    Some(Statement::Select(s)) => s,
    _ => panic!("We should get an select statement")
};

println!("{:#?}", s.where_);

let sql = "SELECT CAST(NULL AS CHAR)";
let stmt = parse_statement(sql, &mut issues, &options);

let s: Select = match stmt {
    Some(Statement::Select(s)) => s,
    _ => panic!("We should get an select statement")
};

println!("{:#?}", s.where_);

Fields§

§select_span: Span

Span of “SELECT”

§flags: Vec<SelectFlag>

Flags specified after “SELECT”

§select_exprs: Vec<SelectExpr<'a>>

List of values to select

§from_span: Option<Span>

Span of “FROM”

§table_references: Option<Vec<TableReference<'a>>>

List of tables to select from

§where_: Option<(Expression<'a>, Span)>

Where expression and span of “WHERE” if specified

§group_by: Option<(Span, Vec<Expression<'a>>)>

Span of “GROUP_BY” and group expression if specified

§having: Option<(Expression<'a>, Span)>

Having expression and span of “HAVING” if specified

§window_span: Option<Span>

Span of window if specified

§order_by: Option<(Span, Vec<(Expression<'a>, OrderFlag)>)>

Span of “ORDER BY” and list of order expression and directions, if specified

§limit: Option<(Span, Option<Expression<'a>>, Expression<'a>)>

Span of “LIMIT”, offset and count expressions if specified

§for_update_span: Option<Span>

Span of “FOR UPDATE”

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Compute byte span of an ast fragment
Compute the minimal span containing both self and other

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.