diff --git a/datafusion/sql/src/unparser/dialect.rs b/datafusion/sql/src/unparser/dialect.rs index 3af33ad0afda..ccbd388fc4b7 100644 --- a/datafusion/sql/src/unparser/dialect.rs +++ b/datafusion/sql/src/unparser/dialect.rs @@ -26,7 +26,7 @@ pub struct DefaultDialect {} impl Dialect for DefaultDialect { fn identifier_quote_style(&self) -> Option { - None + Some('"') } } diff --git a/datafusion/sql/src/unparser/expr.rs b/datafusion/sql/src/unparser/expr.rs index b99cfe11f063..d091fbe14dbd 100644 --- a/datafusion/sql/src/unparser/expr.rs +++ b/datafusion/sql/src/unparser/expr.rs @@ -358,7 +358,7 @@ impl Unparser<'_> { pub(super) fn new_ident(&self, str: String) -> ast::Ident { ast::Ident { value: str, - quote_style: Some(self.dialect.identifier_quote_style().unwrap_or('"')), + quote_style: self.dialect.identifier_quote_style(), } } @@ -965,4 +965,20 @@ mod tests { Ok(()) } + + #[test] + fn custom_dialect_none() -> Result<()> { + let dialect = CustomDialect::new(None); + let unparser = Unparser::new(&dialect); + + let expr = col("a").gt(lit(4)); + let ast = unparser.expr_to_sql(&expr)?; + + let actual = format!("{}", ast); + + let expected = r#"(a > 4)"#; + assert_eq!(actual, expected); + + Ok(()) + } }