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_span: Option<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_)

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_span: Option<Span>

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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.