Trait datafusion_sql::unparser::dialect::Dialect
source · pub trait Dialect: Send + Sync {
// Required method
fn identifier_quote_style(&self, _identifier: &str) -> Option<char>;
// Provided methods
fn supports_nulls_first_in_sort(&self) -> bool { ... }
fn use_timestamp_for_date64(&self) -> bool { ... }
fn interval_style(&self) -> IntervalStyle { ... }
fn float64_ast_dtype(&self) -> DataType { ... }
fn utf8_cast_dtype(&self) -> DataType { ... }
fn large_utf8_cast_dtype(&self) -> DataType { ... }
fn date_field_extract_style(&self) -> DateFieldExtractStyle { ... }
fn int64_cast_dtype(&self) -> DataType { ... }
fn timestamp_cast_dtype(
&self,
_time_unit: &TimeUnit,
tz: &Option<Arc<str>>,
) -> DataType { ... }
}
Expand description
Dialect
to use for Unparsing
The default dialect tries to avoid quoting identifiers unless necessary (e.g. a
instead of "a"
)
but this behavior can be overridden as needed
Note: This trait will eventually be replaced by the Dialect in the SQLparser package
See https://github.com/sqlparser-rs/sqlparser-rs/pull/1170 See also the discussion in https://github.com/apache/datafusion/pull/10625
Required Methods§
sourcefn identifier_quote_style(&self, _identifier: &str) -> Option<char>
fn identifier_quote_style(&self, _identifier: &str) -> Option<char>
Return the character used to quote identifiers.
Provided Methods§
sourcefn supports_nulls_first_in_sort(&self) -> bool
fn supports_nulls_first_in_sort(&self) -> bool
Does the dialect support specifying NULLS FIRST/LAST
in ORDER BY
clauses?
sourcefn use_timestamp_for_date64(&self) -> bool
fn use_timestamp_for_date64(&self) -> bool
Does the dialect use TIMESTAMP to represent Date64 rather than DATETIME? E.g. Trino, Athena and Dremio does not have DATETIME data type
fn interval_style(&self) -> IntervalStyle
sourcefn float64_ast_dtype(&self) -> DataType
fn float64_ast_dtype(&self) -> DataType
Does the dialect use DOUBLE PRECISION to represent Float64 rather than DOUBLE? E.g. Postgres uses DOUBLE PRECISION instead of DOUBLE
sourcefn utf8_cast_dtype(&self) -> DataType
fn utf8_cast_dtype(&self) -> DataType
The SQL type to use for Arrow Utf8 unparsing Most dialects use VARCHAR, but some, like MySQL, require CHAR
sourcefn large_utf8_cast_dtype(&self) -> DataType
fn large_utf8_cast_dtype(&self) -> DataType
The SQL type to use for Arrow LargeUtf8 unparsing Most dialects use TEXT, but some, like MySQL, require CHAR
sourcefn date_field_extract_style(&self) -> DateFieldExtractStyle
fn date_field_extract_style(&self) -> DateFieldExtractStyle
The date field extract style to use: DateFieldExtractStyle
sourcefn int64_cast_dtype(&self) -> DataType
fn int64_cast_dtype(&self) -> DataType
The SQL type to use for Arrow Int64 unparsing Most dialects use BigInt, but some, like MySQL, require SIGNED