pub enum Statement {
Show 43 variants Analyze { table_name: ObjectName, partitions: Option<Vec<Expr, Global>>, for_columns: bool, columns: Vec<Ident, Global>, cache_metadata: bool, noscan: bool, compute_statistics: bool, }, Truncate { table_name: ObjectName, partitions: Option<Vec<Expr, Global>>, }, Msck { table_name: ObjectName, repair: bool, partition_action: Option<AddDropSync>, }, Query(Box<Query, Global>), Insert { or: Option<SqliteOnConflict>, into: bool, table_name: ObjectName, columns: Vec<Ident, Global>, overwrite: bool, source: Box<Query, Global>, partitioned: Option<Vec<Expr, Global>>, after_columns: Vec<Ident, Global>, table: bool, on: Option<OnInsert>, }, Directory { overwrite: bool, local: bool, path: String, file_format: Option<FileFormat>, source: Box<Query, Global>, }, Copy { table_name: ObjectName, columns: Vec<Ident, Global>, to: bool, target: CopyTarget, options: Vec<CopyOption, Global>, legacy_options: Vec<CopyLegacyOption, Global>, values: Vec<Option<String>, Global>, }, Close { cursor: CloseCursor, }, Update { table: TableWithJoins, assignments: Vec<Assignment, Global>, from: Option<TableWithJoins>, selection: Option<Expr>, }, Delete { table_name: ObjectName, selection: Option<Expr>, }, CreateView { or_replace: bool, materialized: bool, name: ObjectName, columns: Vec<Ident, Global>, query: Box<Query, Global>, with_options: Vec<SqlOption, Global>, }, CreateTable {
Show 21 fields or_replace: bool, temporary: bool, external: bool, global: Option<bool>, if_not_exists: bool, name: ObjectName, columns: Vec<ColumnDef, Global>, constraints: Vec<TableConstraint, Global>, hive_distribution: HiveDistributionStyle, hive_formats: Option<HiveFormat>, table_properties: Vec<SqlOption, Global>, with_options: Vec<SqlOption, Global>, file_format: Option<FileFormat>, location: Option<String>, query: Option<Box<Query, Global>>, without_rowid: bool, like: Option<ObjectName>, engine: Option<String>, default_charset: Option<String>, collation: Option<String>, on_commit: Option<OnCommit>,
}, CreateVirtualTable { name: ObjectName, if_not_exists: bool, module_name: Ident, module_args: Vec<Ident, Global>, }, CreateIndex { name: ObjectName, table_name: ObjectName, columns: Vec<OrderByExpr, Global>, unique: bool, if_not_exists: bool, }, AlterTable { name: ObjectName, operation: AlterTableOperation, }, Drop { object_type: ObjectType, if_exists: bool, names: Vec<ObjectName, Global>, cascade: bool, purge: bool, }, Declare { name: Ident, binary: bool, sensitive: Option<bool>, scroll: Option<bool>, hold: Option<bool>, query: Box<Query, Global>, }, Fetch { name: Ident, direction: FetchDirection, into: Option<ObjectName>, }, Discard { object_type: DiscardObject, }, SetRole { local: bool, session: bool, role_name: Option<Ident>, }, SetVariable { local: bool, hivevar: bool, variable: ObjectName, value: Vec<SetVariableValue, Global>, }, ShowVariable { variable: Vec<Ident, Global>, }, ShowCreate { obj_type: ShowCreateObject, obj_name: ObjectName, }, ShowColumns { extended: bool, full: bool, table_name: ObjectName, filter: Option<ShowStatementFilter>, }, StartTransaction { modes: Vec<TransactionMode, Global>, }, SetTransaction { modes: Vec<TransactionMode, Global>, snapshot: Option<Value>, session: bool, }, Comment { object_type: CommentObject, object_name: ObjectName, comment: Option<String>, }, Commit { chain: bool, }, Rollback { chain: bool, }, CreateSchema { schema_name: ObjectName, if_not_exists: bool, }, CreateDatabase { db_name: ObjectName, if_not_exists: bool, location: Option<String>, managed_location: Option<String>, }, CreateFunction { temporary: bool, name: ObjectName, class_name: String, using: Option<CreateFunctionUsing>, }, Assert { condition: Expr, message: Option<Expr>, }, Grant { privileges: Privileges, objects: GrantObjects, grantees: Vec<Ident, Global>, with_grant_option: bool, granted_by: Option<Ident>, }, Revoke { privileges: Privileges, objects: GrantObjects, grantees: Vec<Ident, Global>, granted_by: Option<Ident>, cascade: bool, }, Deallocate { name: Ident, prepare: bool, }, Execute { name: Ident, parameters: Vec<Expr, Global>, }, Prepare { name: Ident, data_types: Vec<DataType, Global>, statement: Box<Statement, Global>, }, Kill { modifier: Option<KillType>, id: u64, }, ExplainTable { describe_alias: bool, table_name: ObjectName, }, Explain { describe_alias: bool, analyze: bool, verbose: bool, statement: Box<Statement, Global>, }, Savepoint { name: Ident, }, Merge { into: bool, table: TableFactor, source: TableFactor, on: Box<Expr, Global>, clauses: Vec<MergeClause, Global>, },
}
Expand description

A top-level statement (SELECT, INSERT, CREATE, etc.)

Variants

Analyze

Fields

table_name: ObjectName
partitions: Option<Vec<Expr, Global>>
for_columns: bool
columns: Vec<Ident, Global>
cache_metadata: bool
noscan: bool
compute_statistics: bool

Analyze (Hive)

Truncate

Fields

table_name: ObjectName
partitions: Option<Vec<Expr, Global>>

Truncate (Hive)

Msck

Fields

table_name: ObjectName
repair: bool
partition_action: Option<AddDropSync>

Msck (Hive)

Query(Box<Query, Global>)

SELECT

Insert

Fields

or: Option<SqliteOnConflict>

Only for Sqlite

into: bool

INTO - optional keyword

table_name: ObjectName

TABLE

columns: Vec<Ident, Global>

COLUMNS

overwrite: bool

Overwrite (Hive)

source: Box<Query, Global>

A SQL query that specifies what to insert

partitioned: Option<Vec<Expr, Global>>

partitioned insert (Hive)

after_columns: Vec<Ident, Global>

Columns defined after PARTITION

table: bool

whether the insert has the table keyword (Hive)

INSERT

Directory

Fields

overwrite: bool
local: bool
path: String
file_format: Option<FileFormat>
source: Box<Query, Global>

Copy

Fields

table_name: ObjectName

TABLE

columns: Vec<Ident, Global>

COLUMNS

to: bool

If true, is a ‘COPY TO’ statement. If false is a ‘COPY FROM’

target: CopyTarget

The source of ‘COPY FROM’, or the target of ‘COPY TO’

options: Vec<CopyOption, Global>

WITH options (from PostgreSQL version 9.0)

legacy_options: Vec<CopyLegacyOption, Global>

WITH options (before PostgreSQL version 9.0)

values: Vec<Option<String>, Global>

VALUES a vector of values to be copied

Close

Fields

cursor: CloseCursor

Cursor name

Close - closes the portal underlying an open cursor.

Update

Fields

table: TableWithJoins

TABLE

assignments: Vec<Assignment, Global>

Column assignments

from: Option<TableWithJoins>

Table which provide value to be set

selection: Option<Expr>

WHERE

UPDATE

Delete

Fields

table_name: ObjectName

FROM

selection: Option<Expr>

WHERE

DELETE

CreateView

Fields

or_replace: bool
materialized: bool
name: ObjectName

View name

columns: Vec<Ident, Global>
query: Box<Query, Global>
with_options: Vec<SqlOption, Global>

CREATE VIEW

CreateTable

Fields

or_replace: bool
temporary: bool
external: bool
global: Option<bool>
if_not_exists: bool
name: ObjectName

Table name

columns: Vec<ColumnDef, Global>

Optional schema

constraints: Vec<TableConstraint, Global>
hive_distribution: HiveDistributionStyle
hive_formats: Option<HiveFormat>
table_properties: Vec<SqlOption, Global>
with_options: Vec<SqlOption, Global>
file_format: Option<FileFormat>
location: Option<String>
query: Option<Box<Query, Global>>
without_rowid: bool
engine: Option<String>
default_charset: Option<String>
collation: Option<String>
on_commit: Option<OnCommit>

CREATE TABLE

CreateVirtualTable

Fields

name: ObjectName
if_not_exists: bool
module_name: Ident
module_args: Vec<Ident, Global>

SQLite’s CREATE VIRTUAL TABLE .. USING <module_name> (<module_args>)

CreateIndex

Fields

name: ObjectName

index name

table_name: ObjectName
columns: Vec<OrderByExpr, Global>
unique: bool
if_not_exists: bool

CREATE INDEX

AlterTable

Fields

name: ObjectName

Table name

ALTER TABLE

Drop

Fields

object_type: ObjectType

The type of the object to drop: TABLE, VIEW, etc.

if_exists: bool

An optional IF EXISTS clause. (Non-standard.)

names: Vec<ObjectName, Global>

One or more objects to drop. (ANSI SQL requires exactly one.)

cascade: bool

Whether CASCADE was specified. This will be false when RESTRICT or no drop behavior at all was specified.

purge: bool

Hive allows you specify whether the table’s stored data will be deleted along with the dropped table

DROP

Declare

Fields

name: Ident

Cursor name

binary: bool

Causes the cursor to return data in binary rather than in text format.

sensitive: Option<bool>

None = Not specified Some(true) = INSENSITIVE Some(false) = ASENSITIVE

scroll: Option<bool>

None = Not specified Some(true) = SCROLL Some(false) = NO SCROLL

hold: Option<bool>

None = Not specified Some(true) = WITH HOLD, specifies that the cursor can continue to be used after the transaction that created it successfully commits Some(false) = WITHOUT HOLD, specifies that the cursor cannot be used outside of the transaction that created it

query: Box<Query, Global>

DECLARE - Declaring Cursor Variables

Note: this is a PostgreSQL-specific statement, but may also compatible with other SQL.

Fetch

Fields

name: Ident

Cursor name

direction: FetchDirection
into: Option<ObjectName>

Optional, It’s possible to fetch rows form cursor to the table

FETCH - retrieve rows from a query using a cursor

Note: this is a PostgreSQL-specific statement, but may also compatible with other SQL.

Discard

Fields

object_type: DiscardObject

DISCARD [ ALL | PLANS | SEQUENCES | TEMPORARY | TEMP ]

Note: this is a PostgreSQL-specific statement, but may also compatible with other SQL.

SetRole

Fields

local: bool
session: bool
role_name: Option<Ident>

SET [ SESSION | LOCAL ] ROLE role_name

Note: this is a PostgreSQL-specific statement, but may also compatible with other SQL.

SetVariable

Fields

local: bool
hivevar: bool
variable: ObjectName

SET

Note: this is not a standard SQL statement, but it is supported by at least MySQL and PostgreSQL. Not all MySQL-specific syntatic forms are supported yet.

ShowVariable

Fields

variable: Vec<Ident, Global>

SHOW

Note: this is a PostgreSQL-specific statement.

ShowCreate

Fields

obj_type: ShowCreateObject
obj_name: ObjectName

SHOW CREATE TABLE

Note: this is a MySQL-specific statement.

ShowColumns

Fields

extended: bool
full: bool
table_name: ObjectName

SHOW COLUMNS

Note: this is a MySQL-specific statement.

StartTransaction

Fields

{ BEGIN [ TRANSACTION | WORK ] | START TRANSACTION } ...

SetTransaction

Fields

snapshot: Option<Value>
session: bool

SET TRANSACTION ...

Comment

Fields

object_type: CommentObject
object_name: ObjectName
comment: Option<String>

COMMENT ON ...

Note: this is a PostgreSQL-specific statement.

Commit

Fields

chain: bool

COMMIT [ TRANSACTION | WORK ] [ AND [ NO ] CHAIN ]

Rollback

Fields

chain: bool

ROLLBACK [ TRANSACTION | WORK ] [ AND [ NO ] CHAIN ]

CreateSchema

Fields

schema_name: ObjectName
if_not_exists: bool

CREATE SCHEMA

CreateDatabase

Fields

db_name: ObjectName
if_not_exists: bool
location: Option<String>
managed_location: Option<String>

CREATE DATABASE

CreateFunction

Fields

temporary: bool
name: ObjectName
class_name: String

CREATE FUNCTION

Hive: https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#LanguageManualDDL-Create/Drop/ReloadFunction

Assert

Fields

condition: Expr
message: Option<Expr>

ASSERT <condition> [AS <message>]

Grant

Fields

privileges: Privileges
objects: GrantObjects
grantees: Vec<Ident, Global>
with_grant_option: bool
granted_by: Option<Ident>

GRANT privileges ON objects TO grantees

Revoke

Fields

privileges: Privileges
objects: GrantObjects
grantees: Vec<Ident, Global>
granted_by: Option<Ident>
cascade: bool

REVOKE privileges ON objects FROM grantees

Deallocate

Fields

name: Ident
prepare: bool

DEALLOCATE [ PREPARE ] { name | ALL }

Note: this is a PostgreSQL-specific statement.

Execute

Fields

name: Ident
parameters: Vec<Expr, Global>

EXECUTE name [ ( parameter [, ...] ) ]

Note: this is a PostgreSQL-specific statement.

Prepare

Fields

name: Ident
data_types: Vec<DataType, Global>
statement: Box<Statement, Global>

PREPARE name [ ( data_type [, ...] ) ] AS statement

Note: this is a PostgreSQL-specific statement.

Kill

Fields

modifier: Option<KillType>
id: u64

ExplainTable

Fields

describe_alias: bool
table_name: ObjectName

EXPLAIN TABLE Note: this is a MySQL-specific statement. See https://dev.mysql.com/doc/refman/8.0/en/explain.html

Explain

Fields

describe_alias: bool
analyze: bool

Carry out the command and show actual run times and other statistics.

verbose: bool
statement: Box<Statement, Global>

A SQL query that specifies what to explain

EXPLAIN / DESCRIBE for select_statement

Savepoint

Fields

name: Ident

SAVEPOINT – define a new savepoint within the current transaction

Merge

Fields

into: bool
table: TableFactor
source: TableFactor
on: Box<Expr, Global>
clauses: Vec<MergeClause, Global>

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

Deserialize this value from the given Serde deserializer. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Serialize this value into the given Serde serializer. Read more

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

Compare self to key and return true if they are equal.

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 alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

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

Converts the given value to a String. 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.