fix(duckdb): support table rename
This commit is contained in:
1 parent
e9e0d04a2c
commit
e9538ee1dd
2 files changed
+30
-3
No files matched your search
@@ -685,7 +685,11 @@ pub fn supports_object_rename(database_type: Option<DatabaseType>, object_type:
|
||||
}
|
||||
if matches!(
|
||||
database_type,
|
||||
DatabaseType::Sqlite | DatabaseType::Rqlite | DatabaseType::Turso | DatabaseType::CloudflareD1
|
||||
DatabaseType::Sqlite
|
||||
| DatabaseType::Rqlite
|
||||
| DatabaseType::Turso
|
||||
| DatabaseType::CloudflareD1
|
||||
| DatabaseType::DuckDb
|
||||
) {
|
||||
return object_type == DatabaseObjectType::Table;
|
||||
}
|
||||
@@ -729,7 +733,13 @@ pub fn build_rename_object_sql(options: RenameObjectSqlOptions) -> Result<String
|
||||
|
||||
if matches!(
|
||||
database_type,
|
||||
Some(DatabaseType::Sqlite | DatabaseType::Rqlite | DatabaseType::Turso | DatabaseType::CloudflareD1)
|
||||
Some(
|
||||
DatabaseType::Sqlite
|
||||
| DatabaseType::Rqlite
|
||||
| DatabaseType::Turso
|
||||
| DatabaseType::CloudflareD1
|
||||
| DatabaseType::DuckDb
|
||||
)
|
||||
) {
|
||||
return Ok(format!(
|
||||
"ALTER TABLE {} RENAME TO {};",
|
||||
@@ -1866,6 +1876,23 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builds_duckdb_table_rename_sql() {
|
||||
assert!(supports_object_rename(Some(DatabaseType::DuckDb), DatabaseObjectType::Table));
|
||||
assert!(!supports_object_rename(Some(DatabaseType::DuckDb), DatabaseObjectType::View));
|
||||
assert_eq!(
|
||||
build_rename_object_sql(RenameObjectSqlOptions {
|
||||
database_type: Some(DatabaseType::DuckDb),
|
||||
object_type: DatabaseObjectType::Table,
|
||||
schema: Some("main".to_string()),
|
||||
old_name: "users".to_string(),
|
||||
new_name: "app users".to_string(),
|
||||
})
|
||||
.unwrap(),
|
||||
"ALTER TABLE \"main\".\"users\" RENAME TO \"app users\";"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builds_postgres_table_and_view_rename_sql() {
|
||||
assert_eq!(
|
||||
|
||||
Reference in new issue
Block a user