pub enum AlterTableOperation {
Show 52 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,
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.
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 · 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 · 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§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