sql/query/
drop_table.rs

1use crate::util::SqlExtension;
2use crate::{Dialect, Table, ToSql};
3
4/// Create table action
5#[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}