agent_patch
runs/2026-02-28__18-27-22__gpt-5-3-codex/flux-pr-1965/flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/agent-logs/agent.patch
9106 bytes
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/ddl.rs b/app/src/ast/ddl.rs
index 231ab49..fd77338 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/ddl.rs
+++ b/app/src/ast/ddl.rs
@@ -62,6 +62,24 @@ impl fmt::Display for ReplicaIdentity {
}
}
+/// `ALTER TABLE ... RENAME` table rename keyword.
+#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
+#[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
+pub enum AlterTableRenameTableKeyword {
+ To,
+ As,
+}
+
+impl fmt::Display for AlterTableRenameTableKeyword {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ match self {
+ AlterTableRenameTableKeyword::To => f.write_str("TO"),
+ AlterTableRenameTableKeyword::As => f.write_str("AS"),
+ }
+ }
+}
+
/// An `ALTER TABLE` (`Statement::AlterTable`) operation
#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
@@ -262,9 +280,10 @@ pub enum AlterTableOperation {
old_column_name: Ident,
new_column_name: Ident,
},
- /// `RENAME TO <table_name>`
+ /// `RENAME { TO | AS } <table_name>`
RenameTable {
table_name: ObjectName,
+ rename_keyword: AlterTableRenameTableKeyword,
},
// CHANGE [ COLUMN ] <old_name> <new_name> <data_type> [ <options> ]
ChangeColumn {
@@ -696,8 +715,11 @@ impl fmt::Display for AlterTableOperation {
old_column_name,
new_column_name,
} => write!(f, "RENAME COLUMN {old_column_name} TO {new_column_name}"),
- AlterTableOperation::RenameTable { table_name } => {
- write!(f, "RENAME TO {table_name}")
+ AlterTableOperation::RenameTable {
+ table_name,
+ rename_keyword,
+ } => {
+ write!(f, "RENAME {rename_keyword} {table_name}")
}
AlterTableOperation::ChangeColumn {
old_name,
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/mod.rs b/app/src/ast/mod.rs
index c6212f1..9327a9b 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/mod.rs
+++ b/app/src/ast/mod.rs
@@ -59,16 +59,16 @@ pub use self::dcl::{
};
pub use self::ddl::{
AlterColumnOperation, AlterConnectorOwner, AlterIndexOperation, AlterPolicyOperation,
- AlterTableAlgorithm, AlterTableLock, AlterTableOperation, AlterType, AlterTypeAddValue,
- AlterTypeAddValuePosition, AlterTypeOperation, AlterTypeRename, AlterTypeRenameValue,
- ClusteredBy, ColumnDef, ColumnOption, ColumnOptionDef, ColumnOptions, ColumnPolicy,
- ColumnPolicyProperty, ConstraintCharacteristics, CreateConnector, CreateDomain, CreateFunction,
- Deduplicate, DeferrableInitial, DropBehavior, GeneratedAs, GeneratedExpressionMode,
- IdentityParameters, IdentityProperty, IdentityPropertyFormatKind, IdentityPropertyKind,
- IdentityPropertyOrder, IndexOption, IndexType, KeyOrIndexDisplay, NullsDistinctOption, Owner,
- Partition, ProcedureParam, ReferentialAction, ReplicaIdentity, TableConstraint,
- TagsColumnOption, UserDefinedTypeCompositeAttributeDef, UserDefinedTypeRepresentation,
- ViewColumnDef,
+ AlterTableAlgorithm, AlterTableLock, AlterTableOperation, AlterTableRenameTableKeyword,
+ AlterType, AlterTypeAddValue, AlterTypeAddValuePosition, AlterTypeOperation, AlterTypeRename,
+ AlterTypeRenameValue, ClusteredBy, ColumnDef, ColumnOption, ColumnOptionDef, ColumnOptions,
+ ColumnPolicy, ColumnPolicyProperty, ConstraintCharacteristics, CreateConnector, CreateDomain,
+ CreateFunction, Deduplicate, DeferrableInitial, DropBehavior, GeneratedAs,
+ GeneratedExpressionMode, IdentityParameters, IdentityProperty, IdentityPropertyFormatKind,
+ IdentityPropertyKind, IdentityPropertyOrder, IndexOption, IndexType, KeyOrIndexDisplay,
+ NullsDistinctOption, Owner, Partition, ProcedureParam, ReferentialAction, ReplicaIdentity,
+ TableConstraint, TagsColumnOption, UserDefinedTypeCompositeAttributeDef,
+ UserDefinedTypeRepresentation, ViewColumnDef,
};
pub use self::dml::{CreateIndex, CreateTable, Delete, IndexColumn, Insert};
pub use self::operator::{BinaryOperator, UnaryOperator};
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/spans.rs b/app/src/ast/spans.rs
index dec2656..c1eced8 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/spans.rs
+++ b/app/src/ast/spans.rs
@@ -1175,7 +1175,10 @@ impl Spanned for AlterTableOperation {
old_column_name,
new_column_name,
} => old_column_name.span.union(&new_column_name.span),
- AlterTableOperation::RenameTable { table_name } => table_name.span(),
+ AlterTableOperation::RenameTable {
+ table_name,
+ rename_keyword: _,
+ } => table_name.span(),
AlterTableOperation::ChangeColumn {
old_name,
new_name,
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/parser/mod.rs b/app/src/parser/mod.rs
index 39571ba..38b0d30 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/parser/mod.rs
+++ b/app/src/parser/mod.rs
@@ -8750,9 +8750,20 @@ impl<'a> Parser<'a> {
self.expect_keyword_is(Keyword::TO)?;
let new_name = self.parse_identifier()?;
AlterTableOperation::RenameConstraint { old_name, new_name }
- } else if self.parse_keyword(Keyword::TO) {
+ } else if let Some(rename_keyword) = if dialect_of!(self is MySqlDialect) {
+ self.parse_one_of_keywords(&[Keyword::TO, Keyword::AS])
+ } else {
+ self.parse_one_of_keywords(&[Keyword::TO])
+ } {
let table_name = self.parse_object_name(false)?;
- AlterTableOperation::RenameTable { table_name }
+ AlterTableOperation::RenameTable {
+ table_name,
+ rename_keyword: match rename_keyword {
+ Keyword::TO => AlterTableRenameTableKeyword::To,
+ Keyword::AS => AlterTableRenameTableKeyword::As,
+ _ => unreachable!(),
+ },
+ }
} else {
let _ = self.parse_keyword(Keyword::COLUMN); // [ COLUMN ]
let old_column_name = self.parse_identifier()?;
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_common.rs b/app/tests/sqlparser_common.rs
index a64733d..e2fdb15 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_common.rs
+++ b/app/tests/sqlparser_common.rs
@@ -4691,8 +4691,12 @@ fn parse_alter_table() {
let rename_table = "ALTER TABLE tab RENAME TO new_tab";
match alter_table_op(verified_stmt(rename_table)) {
- AlterTableOperation::RenameTable { table_name } => {
+ AlterTableOperation::RenameTable {
+ table_name,
+ rename_keyword,
+ } => {
assert_eq!("new_tab", table_name.to_string());
+ assert_eq!(AlterTableRenameTableKeyword::To, rename_keyword);
}
_ => unreachable!(),
};
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_mysql.rs b/app/tests/sqlparser_mysql.rs
index cf4e24a..9c9d40b 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_mysql.rs
+++ b/app/tests/sqlparser_mysql.rs
@@ -2697,6 +2697,35 @@ fn parse_alter_table_add_column() {
}
}
+#[test]
+fn parse_alter_table_rename_table() {
+ match mysql().verified_stmt("ALTER TABLE tab RENAME TO new_tab") {
+ Statement::AlterTable { operations, .. } => {
+ assert_eq!(
+ operations,
+ vec![AlterTableOperation::RenameTable {
+ table_name: ObjectName(vec![Ident::new("new_tab")]),
+ rename_keyword: AlterTableRenameTableKeyword::To,
+ }]
+ );
+ }
+ _ => unreachable!(),
+ }
+
+ match mysql().verified_stmt("ALTER TABLE tab RENAME AS new_tab") {
+ Statement::AlterTable { operations, .. } => {
+ assert_eq!(
+ operations,
+ vec![AlterTableOperation::RenameTable {
+ table_name: ObjectName(vec![Ident::new("new_tab")]),
+ rename_keyword: AlterTableRenameTableKeyword::As,
+ }]
+ );
+ }
+ _ => unreachable!(),
+ }
+}
+
#[test]
fn parse_alter_table_add_columns() {
match mysql()