sqlutil 0.1.3

A utility library for building SQL queries
Documentation

use crate::quote_identifier;

pub fn build_delete_sql(table: &str, where_clause: Option<&str>) -> String {
    // Default to dummy table if not provided
    let mut query = format!("DELETE FROM {}", quote_identifier(table));

    // Add WHERE clause if provided
    if let Some(cond) = where_clause {
        if !cond.trim().is_empty() {
            query.push_str(&format!(" WHERE {}", cond));
        }
    }

    query
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_delete_all() {
        let sql = build_delete_sql("users", None);
        assert_eq!(sql, "DELETE FROM \"users\"");
    }

    #[test]
    fn test_delete_with_where() {
        let sql = build_delete_sql("users", Some("id = 1"));
        assert_eq!(sql, "DELETE FROM \"users\" WHERE id = 1");
    }

    #[test]
    fn test_delete_with_empty_where() {
        let sql = build_delete_sql("users", Some("   "));
        assert_eq!(sql, "DELETE FROM \"users\"");
    }
}