use std::sync::Arc;
use datafusion::sql::unparser::dialect::{
DefaultDialect, Dialect, DuckDBDialect, MySqlDialect, PostgreSqlDialect, SqliteDialect,
};
use pyo3::prelude::*;
#[pyclass(
from_py_object,
frozen,
name = "Dialect",
module = "datafusion.unparser",
subclass
)]
#[derive(Clone)]
pub struct PyDialect {
pub dialect: Arc<dyn Dialect>,
}
#[pymethods]
impl PyDialect {
#[staticmethod]
pub fn default() -> Self {
Self {
dialect: Arc::new(DefaultDialect {}),
}
}
#[staticmethod]
pub fn postgres() -> Self {
Self {
dialect: Arc::new(PostgreSqlDialect {}),
}
}
#[staticmethod]
pub fn mysql() -> Self {
Self {
dialect: Arc::new(MySqlDialect {}),
}
}
#[staticmethod]
pub fn sqlite() -> Self {
Self {
dialect: Arc::new(SqliteDialect {}),
}
}
#[staticmethod]
pub fn duckdb() -> Self {
Self {
dialect: Arc::new(DuckDBDialect::new()),
}
}
}