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
for_columns: bool
cache_metadata: bool
noscan: bool
compute_statistics: bool
Analyze (Hive)
Truncate
Truncate (Hive)
Msck
Msck (Hive)
Query(Box<Query, Global>)
SELECT
Insert
Fields
or: Option<SqliteOnConflict>
Only for Sqlite
into: bool
INTO - optional keyword
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, Global>
WITH options (from PostgreSQL version 9.0)
legacy_options: Vec<CopyLegacyOption, Global>
WITH options (before PostgreSQL version 9.0)
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
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, Global>
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, Global>
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, 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.
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
SET [ SESSION | LOCAL ] ROLE role_name
Note: this is a PostgreSQL-specific statement, but may also compatible with other SQL.
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, Global>
{ 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
CreateFunction
CREATE FUNCTION
Hive: https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#LanguageManualDDL-Create/Drop/ReloadFunction
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.
Kill
KILL [CONNECTION | QUERY | MUTATION]
See https://clickhouse.com/docs/ru/sql-reference/statements/kill/ See https://dev.mysql.com/doc/refman/8.0/en/kill.html
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<'de> Deserialize<'de> for Statement
impl<'de> Deserialize<'de> for Statement
fn deserialize<__D>(
__deserializer: __D
) -> Result<Statement, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<Statement, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl PartialEq<Statement> for Statement
impl PartialEq<Statement> for Statement
impl Serialize for Statement
impl Serialize for Statement
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
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<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.