1use crate::util::SqlExtension;
2use crate::{Dialect, Table, ToSql};
3
4#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct DropTable {
7 pub schema: Option<String>,
8 pub name: String,
9}
10
11impl DropTable {
12 pub fn from_table(table: &Table) -> DropTable {
13 DropTable {
14 schema: table.schema.clone(),
15 name: table.name.clone(),
16 }
17 }
18}
19
20impl ToSql for DropTable {
21 fn write_sql(&self, buf: &mut String, _dialect: Dialect) {
22 buf.push_str("DROP TABLE ");
23 buf.push_table_name(&self.schema, &self.name);
24 }
25}
26
27#[cfg(test)]
28mod tests {
29 use super::*;
30
31 #[test]
32 fn test_drop_table() {
33 let t = Table::new("test_table");
34 let dt = DropTable::from_table(&t);
35 let sql = dt.to_sql(Dialect::Postgres).to_string();
36 assert_eq!(sql, r#"DROP TABLE "test_table""#);
37 }
38}