pub enum AlterTableOperation {
Show 53 variants
AddConstraint {
constraint: TableConstraint,
not_valid: bool,
},
AddColumn {
column_keyword: bool,
if_not_exists: bool,
column_def: ColumnDef,
column_position: Option<MySQLColumnPosition>,
},
AddProjection {
if_not_exists: bool,
name: Ident,
select: ProjectionSelect,
},
DropProjection {
if_exists: bool,
name: Ident,
},
MaterializeProjection {
if_exists: bool,
name: Ident,
partition: Option<Ident>,
},
ClearProjection {
if_exists: bool,
name: Ident,
partition: Option<Ident>,
},
DisableRowLevelSecurity,
DisableRule {
name: Ident,
},
DisableTrigger {
name: Ident,
},
DropConstraint {
if_exists: bool,
name: Ident,
drop_behavior: Option<DropBehavior>,
},
DropColumn {
has_column_keyword: bool,
column_names: Vec<Ident>,
if_exists: bool,
drop_behavior: Option<DropBehavior>,
},
AttachPartition {
partition: Partition,
},
DetachPartition {
partition: Partition,
},
FreezePartition {
partition: Partition,
with_name: Option<Ident>,
},
UnfreezePartition {
partition: Partition,
with_name: Option<Ident>,
},
DropPrimaryKey {
drop_behavior: Option<DropBehavior>,
},
DropForeignKey {
name: Ident,
drop_behavior: Option<DropBehavior>,
},
DropIndex {
name: Ident,
},
EnableAlwaysRule {
name: Ident,
},
EnableAlwaysTrigger {
name: Ident,
},
EnableReplicaRule {
name: Ident,
},
EnableReplicaTrigger {
name: Ident,
},
EnableRowLevelSecurity,
ForceRowLevelSecurity,
NoForceRowLevelSecurity,
EnableRule {
name: Ident,
},
EnableTrigger {
name: Ident,
},
RenamePartitions {
old_partitions: Vec<Expr>,
new_partitions: Vec<Expr>,
},
ReplicaIdentity {
identity: ReplicaIdentity,
},
AddPartitions {
if_not_exists: bool,
new_partitions: Vec<Partition>,
},
DropPartitions {
partitions: Vec<Expr>,
if_exists: bool,
},
RenameColumn {
old_column_name: Ident,
new_column_name: Ident,
},
RenameTable {
table_name: RenameTableNameKind,
},
ChangeColumn {
old_name: Ident,
new_name: Ident,
data_type: DataType,
options: Vec<ColumnOption>,
column_position: Option<MySQLColumnPosition>,
},
ModifyColumn {
col_name: Ident,
data_type: DataType,
options: Vec<ColumnOption>,
column_position: Option<MySQLColumnPosition>,
},
RenameConstraint {
old_name: Ident,
new_name: Ident,
},
AlterColumn {
column_name: Ident,
op: AlterColumnOperation,
},
SwapWith {
table_name: ObjectName,
},
SetTblProperties {
table_properties: Vec<SqlOption>,
},
OwnerTo {
new_owner: Owner,
},
ClusterBy {
exprs: Vec<Expr>,
},
DropClusteringKey,
AlterSortKey {
columns: Vec<Expr>,
},
SuspendRecluster,
ResumeRecluster,
Refresh {
subpath: Option<String>,
},
Suspend,
Resume,
Algorithm {
equals: bool,
algorithm: AlterTableAlgorithm,
},
Lock {
equals: bool,
lock: AlterTableLock,
},
AutoIncrement {
equals: bool,
value: ValueWithSpan,
},
ValidateConstraint {
name: Ident,
},
SetOptionsParens {
options: Vec<SqlOption>,
},
}Expand description
An ALTER TABLE (Statement::AlterTable) operation
Variants§
AddConstraint
ADD <table_constraint> [NOT VALID]
Fields
constraint: TableConstraintThe table constraint to add.
AddColumn
ADD [COLUMN] [IF NOT EXISTS] <column_def>
Fields
column_position: Option<MySQLColumnPosition>MySQL ALTER TABLE only [FIRST | AFTER column_name]
AddProjection
ADD PROJECTION [IF NOT EXISTS] name ( SELECT <COLUMN LIST EXPR> [GROUP BY] [ORDER BY])
Note: this is a ClickHouse-specific operation. Please refer to ClickHouse
Fields
select: ProjectionSelectThe projection’s select clause.
DropProjection
DROP PROJECTION [IF EXISTS] name
Note: this is a ClickHouse-specific operation. Please refer to ClickHouse
MaterializeProjection
MATERIALIZE PROJECTION [IF EXISTS] name [IN PARTITION partition_name]
Note: this is a ClickHouse-specific operation. Please refer to ClickHouse
Fields
ClearProjection
CLEAR PROJECTION [IF EXISTS] name [IN PARTITION partition_name]
Note: this is a ClickHouse-specific operation. Please refer to ClickHouse
Fields
DisableRowLevelSecurity
DISABLE ROW LEVEL SECURITY
Note: this is a PostgreSQL-specific operation. Please refer to PostgreSQL documentation
DisableRule
DISABLE RULE rewrite_rule_name
Note: this is a PostgreSQL-specific operation.
DisableTrigger
DISABLE TRIGGER [ trigger_name | ALL | USER ]
Note: this is a PostgreSQL-specific operation.
DropConstraint
DROP CONSTRAINT [ IF EXISTS ] <name>
Fields
drop_behavior: Option<DropBehavior>Optional drop behavior (CASCADE/RESTRICT).
DropColumn
DROP [ COLUMN ] [ IF EXISTS ] <column_name> [ , <column_name>, ... ] [ CASCADE ]
Fields
drop_behavior: Option<DropBehavior>Optional drop behavior for the column removal.
AttachPartition
ATTACH PART|PARTITION <partition_expr>
Note: this is a ClickHouse-specific operation, please refer to
ClickHouse
DetachPartition
DETACH PART|PARTITION <partition_expr>
Note: this is a ClickHouse-specific operation, please refer to
ClickHouse
FreezePartition
FREEZE PARTITION <partition_expr>
Note: this is a ClickHouse-specific operation, please refer to
ClickHouse
Fields
UnfreezePartition
UNFREEZE PARTITION <partition_expr>
Note: this is a ClickHouse-specific operation, please refer to
ClickHouse
Fields
DropPrimaryKey
Fields
drop_behavior: Option<DropBehavior>Optional drop behavior for the primary key (CASCADE/RESTRICT).
DropForeignKey
Fields
drop_behavior: Option<DropBehavior>Optional drop behavior for the foreign key.
DropIndex
DROP INDEX <index_name>
EnableAlwaysRule
ENABLE ALWAYS RULE rewrite_rule_name
Note: this is a PostgreSQL-specific operation.
EnableAlwaysTrigger
ENABLE ALWAYS TRIGGER trigger_name
Note: this is a PostgreSQL-specific operation.
EnableReplicaRule
ENABLE REPLICA RULE rewrite_rule_name
Note: this is a PostgreSQL-specific operation.
EnableReplicaTrigger
ENABLE REPLICA TRIGGER trigger_name
Note: this is a PostgreSQL-specific operation.
EnableRowLevelSecurity
ENABLE ROW LEVEL SECURITY
Note: this is a PostgreSQL-specific operation. Please refer to PostgreSQL documentation
ForceRowLevelSecurity
FORCE ROW LEVEL SECURITY
Note: this is a PostgreSQL-specific operation. Please refer to PostgreSQL documentation
NoForceRowLevelSecurity
NO FORCE ROW LEVEL SECURITY
Note: this is a PostgreSQL-specific operation. Please refer to PostgreSQL documentation
EnableRule
ENABLE RULE rewrite_rule_name
Note: this is a PostgreSQL-specific operation.
EnableTrigger
ENABLE TRIGGER [ trigger_name | ALL | USER ]
Note: this is a PostgreSQL-specific operation.
RenamePartitions
RENAME TO PARTITION (partition=val)
Fields
ReplicaIdentity
REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING }
Note: this is a PostgreSQL-specific operation. Please refer to PostgreSQL documentation
Fields
identity: ReplicaIdentityReplica identity setting to apply.
AddPartitions
Add Partitions
Fields
DropPartitions
DROP PARTITIONS ... / drop partitions from the table.
Fields
RenameColumn
RENAME [ COLUMN ] <old_column_name> TO <new_column_name>
Fields
RenameTable
RENAME TO <table_name>
Fields
table_name: RenameTableNameKindThe new table name or renaming kind.
ChangeColumn
Change an existing column’s name, type, and options.
Fields
options: Vec<ColumnOption>Column options to apply after the change.
column_position: Option<MySQLColumnPosition>MySQL-specific column position (FIRST/AFTER).
ModifyColumn
Modify an existing column’s type and options.
Fields
options: Vec<ColumnOption>Column options to set.
column_position: Option<MySQLColumnPosition>MySQL-specific column position (FIRST/AFTER).
RenameConstraint
RENAME CONSTRAINT <old_constraint_name> TO <new_constraint_name>
Note: this is a PostgreSQL-specific operation. Rename a constraint on the table.
AlterColumn
ALTER [ COLUMN ]
Alter a specific column with the provided operation.
Fields
op: AlterColumnOperationOperation to apply to the column.
SwapWith
‘SWAP WITH <table_name>’
Note: this is Snowflake specific https://docs.snowflake.com/en/sql-reference/sql/alter-table
Fields
table_name: ObjectNameTable name to swap with.
SetTblProperties
‘SET TBLPROPERTIES ( { property_key [ = ] property_val } [, …] )’
OwnerTo
OWNER TO { <new_owner> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
Note: this is PostgreSQL-specific https://www.postgresql.org/docs/current/sql-altertable.html
ClusterBy
Snowflake table clustering options https://docs.snowflake.com/en/sql-reference/sql/alter-table#clustering-actions-clusteringaction
DropClusteringKey
Remove the clustering key from the table.
AlterSortKey
Redshift ALTER SORTKEY (column_list)
https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html
SuspendRecluster
Suspend background reclustering operations.
ResumeRecluster
Resume background reclustering operations.
Refresh
REFRESH [ '<subpath>' ]
Note: this is Snowflake specific for dynamic/external tables https://docs.snowflake.com/en/sql-reference/sql/alter-dynamic-table https://docs.snowflake.com/en/sql-reference/sql/alter-external-table
Suspend
SUSPEND
Note: this is Snowflake specific for dynamic tables https://docs.snowflake.com/en/sql-reference/sql/alter-table
Resume
RESUME
Note: this is Snowflake specific for dynamic tables https://docs.snowflake.com/en/sql-reference/sql/alter-table
Algorithm
ALGORITHM [=] { DEFAULT | INSTANT | INPLACE | COPY }
MySQL-specific table alter algorithm.
Fields
algorithm: AlterTableAlgorithmThe algorithm to use for the alter operation (MySQL-specific).
Lock
LOCK [=] { DEFAULT | NONE | SHARED | EXCLUSIVE }
MySQL-specific table alter lock.
Fields
lock: AlterTableLockThe locking behavior to apply (MySQL-specific).
AutoIncrement
AUTO_INCREMENT [=] <value>
MySQL-specific table option for raising current auto increment value.
Fields
value: ValueWithSpanValue to set for the auto-increment counter.
ValidateConstraint
VALIDATE CONSTRAINT <name>
SetOptionsParens
Arbitrary parenthesized SET options.
Example:
SET (scale_factor = 0.01, threshold = 500)`Trait Implementations§
Source§impl Clone for AlterTableOperation
impl Clone for AlterTableOperation
Source§fn clone(&self) -> AlterTableOperation
fn clone(&self) -> AlterTableOperation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AlterTableOperation
impl Debug for AlterTableOperation
Source§impl<'de> Deserialize<'de> for AlterTableOperation
impl<'de> Deserialize<'de> for AlterTableOperation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for AlterTableOperation
impl Display for AlterTableOperation
Source§impl Hash for AlterTableOperation
impl Hash for AlterTableOperation
Source§impl Ord for AlterTableOperation
impl Ord for AlterTableOperation
Source§fn cmp(&self, other: &AlterTableOperation) -> Ordering
fn cmp(&self, other: &AlterTableOperation) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for AlterTableOperation
impl PartialEq for AlterTableOperation
Source§fn eq(&self, other: &AlterTableOperation) -> bool
fn eq(&self, other: &AlterTableOperation) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for AlterTableOperation
impl PartialOrd for AlterTableOperation
Source§impl Serialize for AlterTableOperation
impl Serialize for AlterTableOperation
Source§impl Spanned for AlterTableOperation
§partial span
Missing spans:
impl Spanned for AlterTableOperation
§partial span
Missing spans:
Source§impl Visit for AlterTableOperation
impl Visit for AlterTableOperation
Source§impl VisitMut for AlterTableOperation
impl VisitMut for AlterTableOperation
Source§fn visit<V: VisitorMut>(&mut self, visitor: &mut V) -> ControlFlow<V::Break>
fn visit<V: VisitorMut>(&mut self, visitor: &mut V) -> ControlFlow<V::Break>
VisitorMut. Read more