Enum wing_sqlparser::ast::Statement [−][src]
pub enum Statement {
Show 34 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>,
values: Vec<Option<String>>,
},
Update {
table: TableWithJoins,
assignments: Vec<Assignment>,
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 16 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>,
},
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>,
},
}
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
Update
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
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Statement
impl UnwindSafe for Statement
Blanket Implementations
Mutably borrows from an owned value. Read more