Skip to main content

Statement

Enum Statement 

Source
pub enum Statement {
    Query(QueryRef),
    CreateTable(CreateTableRef),
    CreateView(CreateViewRef),
    DropTable(DropTableRef),
    Insert(InsertRef),
    Set(SettingRef),
    Reset(SettingRef),
    Explain {
        query: QueryRef,
        analyze: bool,
    },
}
Expand description

One statement.

Seven of the twenty seven the grammar reaches. The rest are a transform error naming the rule rather than a variant that nothing fills in, so that adding one is a compile error somewhere useful rather than a silent todo!().

Variants§

§

Query(QueryRef)

A query, meaning a SELECT or a set operation over two of them.

§

CreateTable(CreateTableRef)

CREATE TABLE.

§

CreateView(CreateViewRef)

CREATE VIEW.

§

DropTable(DropTableRef)

DROP TABLE or DROP VIEW, which are one rule in the grammar and one statement here.

§

Insert(InsertRef)

INSERT INTO.

§

Set(SettingRef)

SET name = value.

§

Reset(SettingRef)

RESET name, which is the same shape with nothing on the right of it.

§

Explain

EXPLAIN over a query, and whether ANALYZE was asked for.

The query rather than a statement, because the grammar lets every statement be explained and a plan is the only thing there is to show. EXPLAIN INSERT is a refusal rather than a plan of the source, since the source is not what the statement does.

ANALYZE means the query is run and the plan is printed with what happened on it, so it is a flag on the same statement rather than a statement of its own. Everything between the parser and the printer is the same either way, which is the point: the analyzed plan has to be the plan that ran.

Fields

§query: QueryRef
§analyze: bool

Trait Implementations§

Source§

impl Clone for Statement

Source§

fn clone(&self) -> Statement

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Statement

Source§

impl Debug for Statement

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Statement

Source§

impl PartialEq for Statement

Source§

fn eq(&self, other: &Statement) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Statement

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.