pub enum Statement {
Show 36 variants
Analyze {
table_name: ObjectName,
partitions: Option<Vec<Expr>>,
for_columns: bool,
columns: Vec<Ident>,
cache_metadata: bool,
noscan: bool,
compute_statistics: bool,
},
Truncate {
table_name: ObjectName,
partitions: Option<Vec<Expr>>,
},
Msck {
table_name: ObjectName,
repair: bool,
partition_action: Option<AddDropSync>,
},
Query(Box<Query>),
Insert {
or: Option<SqliteOnConflict>,
table_name: ObjectName,
columns: Vec<Ident>,
overwrite: bool,
source: Box<Query>,
partitioned: Option<Vec<Expr>>,
after_columns: Vec<Ident>,
table: bool,
on: Option<OnInsert>,
},
Directory {
overwrite: bool,
local: bool,
path: String,
file_format: Option<FileFormat>,
source: Box<Query>,
},
Copy {
table_name: ObjectName,
columns: Vec<Ident>,
to: bool,
target: CopyTarget,
options: Vec<CopyOption>,
legacy_options: Vec<CopyLegacyOption>,
values: Vec<Option<String>>,
},
Update {
table: TableWithJoins,
assignments: Vec<Assignment>,
from: Option<TableWithJoins>,
selection: Option<Expr>,
},
Delete {
table_name: ObjectName,
selection: Option<Expr>,
},
CreateView {
or_replace: bool,
materialized: bool,
name: ObjectName,
columns: Vec<Ident>,
query: Box<Query>,
with_options: Vec<SqlOption>,
},
CreateTable {Show 19 fields
or_replace: bool,
temporary: bool,
external: bool,
if_not_exists: bool,
name: ObjectName,
columns: Vec<ColumnDef>,
constraints: Vec<TableConstraint>,
hive_distribution: HiveDistributionStyle,
hive_formats: Option<HiveFormat>,
table_properties: Vec<SqlOption>,
with_options: Vec<SqlOption>,
file_format: Option<FileFormat>,
location: Option<String>,
query: Option<Box<Query>>,
without_rowid: bool,
like: Option<ObjectName>,
engine: Option<String>,
default_charset: Option<String>,
collation: Option<String>,
},
CreateVirtualTable {
name: ObjectName,
if_not_exists: bool,
module_name: Ident,
module_args: Vec<Ident>,
},
CreateIndex {
name: ObjectName,
table_name: ObjectName,
columns: Vec<OrderByExpr>,
unique: bool,
if_not_exists: bool,
},
AlterTable {
name: ObjectName,
operation: AlterTableOperation,
},
Drop {
object_type: ObjectType,
if_exists: bool,
names: Vec<ObjectName>,
cascade: bool,
purge: bool,
},
SetVariable {
local: bool,
hivevar: bool,
variable: Ident,
value: Vec<SetVariableValue>,
},
ShowVariable {
variable: Vec<Ident>,
},
ShowCreate {
obj_type: ShowCreateObject,
obj_name: ObjectName,
},
ShowColumns {
extended: bool,
full: bool,
table_name: ObjectName,
filter: Option<ShowStatementFilter>,
},
StartTransaction {
modes: Vec<TransactionMode>,
},
SetTransaction {
modes: Vec<TransactionMode>,
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>,
},
Assert {
condition: Expr,
message: Option<Expr>,
},
Grant {
privileges: Privileges,
objects: GrantObjects,
grantees: Vec<Ident>,
with_grant_option: bool,
granted_by: Option<Ident>,
},
Revoke {
privileges: Privileges,
objects: GrantObjects,
grantees: Vec<Ident>,
granted_by: Option<Ident>,
cascade: bool,
},
Deallocate {
name: Ident,
prepare: bool,
},
Execute {
name: Ident,
parameters: Vec<Expr>,
},
Prepare {
name: Ident,
data_types: Vec<DataType>,
statement: Box<Statement>,
},
ExplainTable {
describe_alias: bool,
table_name: ObjectName,
},
Explain {
describe_alias: bool,
analyze: bool,
verbose: bool,
statement: Box<Statement>,
},
Savepoint {
name: Ident,
},
Merge {
table: TableFactor,
source: Box<SetExpr>,
alias: Option<TableAlias>,
on: Box<Expr>,
clauses: Vec<MergeClause>,
},
}
Expand description
A top-level statement (SELECT, INSERT, CREATE, etc.)
Variants
Analyze
Fields
table_name: ObjectName
for_columns: bool
cache_metadata: bool
noscan: bool
compute_statistics: bool
Analyze (Hive)
Truncate
Truncate (Hive)
Msck
Msck (Hive)
Query(Box<Query>)
SELECT
Insert
Fields
or: Option<SqliteOnConflict>
Only for Sqlite
table_name: ObjectName
TABLE
overwrite: bool
Overwrite (Hive)
table: bool
whether the insert has the table keyword (Hive)
INSERT
Directory
Copy
Fields
table_name: ObjectName
TABLE
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>
WITH options (from PostgreSQL version 9.0)
legacy_options: Vec<CopyLegacyOption>
WITH options (before PostgreSQL version 9.0)
Update
Fields
table: TableWithJoins
TABLE
assignments: Vec<Assignment>
Column assignments
from: Option<TableWithJoins>
Table which provide value to be set
UPDATE
Delete
DELETE
CreateView
CREATE VIEW
CreateTable
Fields
or_replace: bool
temporary: bool
external: bool
if_not_exists: bool
name: ObjectName
Table name
constraints: Vec<TableConstraint>
hive_distribution: HiveDistributionStyle
hive_formats: Option<HiveFormat>
file_format: Option<FileFormat>
without_rowid: bool
like: Option<ObjectName>
CREATE TABLE
CreateVirtualTable
SQLite’s CREATE VIRTUAL TABLE .. USING <module_name> (<module_args>)
CreateIndex
Fields
name: ObjectName
index name
table_name: ObjectName
columns: Vec<OrderByExpr>
unique: bool
if_not_exists: bool
CREATE INDEX
AlterTable
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>
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
SetVariable
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
SHOW
Note: this is a PostgreSQL-specific statement.
ShowCreate
SHOW CREATE TABLE
Note: this is a MySQL-specific statement.
ShowColumns
SHOW COLUMNS
Note: this is a MySQL-specific statement.
StartTransaction
Fields
modes: Vec<TransactionMode>
{ BEGIN [ TRANSACTION | WORK ] | START TRANSACTION } ...
SetTransaction
SET TRANSACTION ...
Comment
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
CREATE SCHEMA
CreateDatabase
CREATE DATABASE
Assert
ASSERT <condition> [AS <message>]
Grant
GRANT privileges ON objects TO grantees
Revoke
REVOKE privileges ON objects FROM grantees
Deallocate
DEALLOCATE [ PREPARE ] { name | ALL }
Note: this is a PostgreSQL-specific statement.
Execute
EXECUTE name [ ( parameter [, ...] ) ]
Note: this is a PostgreSQL-specific statement.
Prepare
PREPARE name [ ( data_type [, ...] ) ] AS statement
Note: this is a PostgreSQL-specific statement.
ExplainTable
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
EXPLAIN / DESCRIBE for select_statement
Savepoint
Fields
name: Ident
SAVEPOINT – define a new savepoint within the current transaction
Merge
Trait Implementations
impl Eq for Statement
impl StructuralEq for Statement
impl StructuralPartialEq for Statement
Auto Trait Implementations
impl RefUnwindSafe for Statement
impl Send for Statement
impl Sync for Statement
impl Unpin for Statement
impl UnwindSafe for Statement
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more