From 6773dca59553a4cc00f86ed51a7d79206d773a1e Mon Sep 17 00:00:00 2001 From: pedrocarlo Date: Wed, 28 May 2025 23:18:58 -0300 Subject: [PATCH] impl ToSqlString for VACUUM stmt + tests --- .../src/to_sql_string/stmt/mod.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/vendored/sqlite3-parser/src/to_sql_string/stmt/mod.rs b/vendored/sqlite3-parser/src/to_sql_string/stmt/mod.rs index f74b38720..19fff4c5c 100644 --- a/vendored/sqlite3-parser/src/to_sql_string/stmt/mod.rs +++ b/vendored/sqlite3-parser/src/to_sql_string/stmt/mod.rs @@ -186,7 +186,17 @@ impl ToSqlString for ast::Stmt { Self::Savepoint(name) => format!("SAVEPOINT {};", name.0), Self::Select(select) => format!("{};", select.to_sql_string(context)), Self::Update(update) => format!("{};", update.to_sql_string(context)), - _ => todo!(), + Self::Vacuum(name, expr) => { + format!( + "VACUUM{}{};", + name.as_ref() + .map_or("".to_string(), |name| format!(" {}", name.0)), + expr.as_ref().map_or("".to_string(), |expr| format!( + " INTO {}", + expr.to_sql_string(context) + )) + ) + } } } } @@ -398,4 +408,10 @@ mod tests { to_sql_string_test!(test_rollback_2, "ROLLBACK TO savepoint_name;"); to_sql_string_test!(test_savepoint, "SAVEPOINT savepoint_name;"); + + to_sql_string_test!(test_vacuum, "VACUUM;"); + + to_sql_string_test!(test_vacuum_2, "VACUUM schema_name;"); + + to_sql_string_test!(test_vacuum_3, "VACUUM schema_name INTO test.db;"); }