STET

agent_patch

runs/2026-02-28__18-27-22__gpt-5-4/flux-pr-1965/flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/agent-logs/agent.patch

7004 bytes

Back to adjudication
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/src/ast/ddl.rs b/app/src/ast/ddl.rs
index 231ab49..4bd749f 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/src/ast/ddl.rs
+++ b/app/src/ast/ddl.rs
@@ -262,8 +262,9 @@ pub enum AlterTableOperation {
         old_column_name: Ident,
         new_column_name: Ident,
     },
-    /// `RENAME TO <table_name>`
+    /// `RENAME { TO | AS } <table_name>`
     RenameTable {
+        rename_table_keyword: AlterTableRenameTableKeyword,
         table_name: ObjectName,
     },
     // CHANGE [ COLUMN ] <old_name> <new_name> <data_type> [ <options> ]
@@ -363,6 +364,23 @@ pub enum AlterTableOperation {
     },
 }
 
+#[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 {
+            Self::To => write!(f, "TO"),
+            Self::As => write!(f, "AS"),
+        }
+    }
+}
+
 /// An `ALTER Policy` (`Statement::AlterPolicy`) operation
 ///
 /// [PostgreSQL Documentation](https://www.postgresql.org/docs/current/sql-altertable.html)
@@ -696,8 +714,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 {
+                rename_table_keyword,
+                table_name,
+            } => {
+                write!(f, "RENAME {rename_table_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-4/app/src/ast/mod.rs b/app/src/ast/mod.rs
index c6212f1..347cde3 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/src/ast/mod.rs
+++ b/app/src/ast/mod.rs
@@ -59,8 +59,9 @@ pub use self::dcl::{
 };
 pub use self::ddl::{
     AlterColumnOperation, AlterConnectorOwner, AlterIndexOperation, AlterPolicyOperation,
-    AlterTableAlgorithm, AlterTableLock, AlterTableOperation, AlterType, AlterTypeAddValue,
-    AlterTypeAddValuePosition, AlterTypeOperation, AlterTypeRename, AlterTypeRenameValue,
+    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,
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/src/ast/spans.rs b/app/src/ast/spans.rs
index dec2656..1347fae 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/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 {
+                rename_table_keyword: _,
+                table_name,
+            } => 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-4/app/src/parser/mod.rs b/app/src/parser/mod.rs
index 39571ba..fd5c374 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/src/parser/mod.rs
+++ b/app/src/parser/mod.rs
@@ -8752,7 +8752,16 @@ impl<'a> Parser<'a> {
                 AlterTableOperation::RenameConstraint { old_name, new_name }
             } else if self.parse_keyword(Keyword::TO) {
                 let table_name = self.parse_object_name(false)?;
-                AlterTableOperation::RenameTable { table_name }
+                AlterTableOperation::RenameTable {
+                    rename_table_keyword: AlterTableRenameTableKeyword::To,
+                    table_name,
+                }
+            } else if dialect_of!(self is MySqlDialect) && self.parse_keyword(Keyword::AS) {
+                let table_name = self.parse_object_name(false)?;
+                AlterTableOperation::RenameTable {
+                    rename_table_keyword: AlterTableRenameTableKeyword::As,
+                    table_name,
+                }
             } 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-4/app/tests/sqlparser_common.rs b/app/tests/sqlparser_common.rs
index a64733d..cc6290e 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/tests/sqlparser_common.rs
+++ b/app/tests/sqlparser_common.rs
@@ -4691,7 +4691,11 @@ 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 {
+            rename_table_keyword,
+            table_name,
+        } => {
+            assert_eq!(AlterTableRenameTableKeyword::To, rename_table_keyword);
             assert_eq!("new_tab", table_name.to_string());
         }
         _ => unreachable!(),
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/tests/sqlparser_mysql.rs b/app/tests/sqlparser_mysql.rs
index cf4e24a..6f703ce 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-28__18-27-22__gpt-5-4/app/tests/sqlparser_mysql.rs
+++ b/app/tests/sqlparser_mysql.rs
@@ -61,6 +61,23 @@ fn parse_literal_string() {
     );
 }
 
+#[test]
+fn parse_alter_table_rename_as() {
+    let sql = "ALTER TABLE tab RENAME AS new_tab";
+    match mysql().verified_stmt(sql) {
+        Statement::AlterTable { operations, .. } => {
+            assert_eq!(
+                operations,
+                vec![AlterTableOperation::RenameTable {
+                    rename_table_keyword: AlterTableRenameTableKeyword::As,
+                    table_name: ObjectName(vec![Ident::new("new_tab")]),
+                }]
+            );
+        }
+        _ => unreachable!(),
+    }
+}
+
 #[test]
 fn parse_flush() {
     assert_eq!(