STET

agent_patch

runs/2026-02-21__03-36-16__gpt-5-1-codex-mini/flux-pr-1965/flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/agent-logs/agent.patch

5470 bytes

Back to adjudication
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/app/src/ast/ddl.rs b/app/src/ast/ddl.rs
index 231ab49..5688f65 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/app/src/ast/ddl.rs
+++ b/app/src/ast/ddl.rs
@@ -62,6 +62,25 @@ impl fmt::Display for ReplicaIdentity {
     }
 }
 
+/// Keyword choice for `ALTER TABLE ... RENAME` operations.
+#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
+pub enum RenameTableKeyword {
+    /// The original `RENAME TO` syntax.
+    To,
+    /// The `RENAME AS` variant supported by MySQL.
+    As,
+}
+
+impl fmt::Display for RenameTableKeyword {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        match self {
+            RenameTableKeyword::To => f.write_str("TO"),
+            RenameTableKeyword::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,8 +281,9 @@ pub enum AlterTableOperation {
         old_column_name: Ident,
         new_column_name: Ident,
     },
-    /// `RENAME TO <table_name>`
+    /// `RENAME TO <table_name>` or `RENAME AS <table_name>`
     RenameTable {
+        keyword: RenameTableKeyword,
         table_name: ObjectName,
     },
     // CHANGE [ COLUMN ] <old_name> <new_name> <data_type> [ <options> ]
@@ -696,8 +716,8 @@ 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 { keyword, table_name } => {
+                write!(f, "RENAME {keyword} {table_name}")
             }
             AlterTableOperation::ChangeColumn {
                 old_name,
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/app/src/ast/mod.rs b/app/src/ast/mod.rs
index c6212f1..2aa2b41 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/app/src/ast/mod.rs
+++ b/app/src/ast/mod.rs
@@ -66,7 +66,7 @@ pub use self::ddl::{
     Deduplicate, DeferrableInitial, DropBehavior, GeneratedAs, GeneratedExpressionMode,
     IdentityParameters, IdentityProperty, IdentityPropertyFormatKind, IdentityPropertyKind,
     IdentityPropertyOrder, IndexOption, IndexType, KeyOrIndexDisplay, NullsDistinctOption, Owner,
-    Partition, ProcedureParam, ReferentialAction, ReplicaIdentity, TableConstraint,
+    Partition, ProcedureParam, ReferentialAction, ReplicaIdentity, RenameTableKeyword, TableConstraint,
     TagsColumnOption, UserDefinedTypeCompositeAttributeDef, UserDefinedTypeRepresentation,
     ViewColumnDef,
 };
diff --git a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/app/src/parser/mod.rs b/app/src/parser/mod.rs
index 39571ba..97c4f1c 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/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 {
+                    keyword: RenameTableKeyword::To,
+                    table_name,
+                }
+            } else if self.parse_keyword(Keyword::AS) {
+                let table_name = self.parse_object_name(false)?;
+                AlterTableOperation::RenameTable {
+                    keyword: RenameTableKeyword::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-21__03-36-16__gpt-5-1-codex-mini/app/tests/sqlparser_common.rs b/app/tests/sqlparser_common.rs
index a64733d..82722e7 100644
--- a/tmp/agent-patch-flux-pr-1965.1-of-1.2026-02-21__03-36-16__gpt-5-1-codex-mini/app/tests/sqlparser_common.rs
+++ b/app/tests/sqlparser_common.rs
@@ -4691,7 +4691,18 @@ 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 { keyword, table_name } => {
+            assert_eq!(RenameTableKeyword::To, keyword);
+            assert_eq!("new_tab", table_name.to_string());
+        }
+        _ => unreachable!(),
+    };
+
+    let rename_table_as = "ALTER TABLE tab RENAME AS new_tab";
+    one_statement_parses_to(rename_table_as, "ALTER TABLE tab RENAME AS new_tab");
+    match alter_table_op(verified_stmt(rename_table_as)) {
+        AlterTableOperation::RenameTable { keyword, table_name } => {
+            assert_eq!(RenameTableKeyword::As, keyword);
             assert_eq!("new_tab", table_name.to_string());
         }
         _ => unreachable!(),