pub struct CustomDialect { /* private fields */ }
Implementations§
Trait Implementations§
Source§impl Default for CustomDialect
impl Default for CustomDialect
Source§impl Dialect for CustomDialect
impl Dialect for CustomDialect
Source§fn identifier_quote_style(&self, _: &str) -> Option<char>
fn identifier_quote_style(&self, _: &str) -> Option<char>
Return the character used to quote identifiers.
Source§fn 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?Source§fn 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
Source§fn 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
Source§fn 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
Source§fn 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
Source§fn date_field_extract_style(&self) -> DateFieldExtractStyle
fn date_field_extract_style(&self) -> DateFieldExtractStyle
The date field extract style to use:
DateFieldExtractStyle
Source§fn 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
Source§fn int32_cast_dtype(&self) -> DataType
fn int32_cast_dtype(&self) -> DataType
The SQL type to use for Arrow Int32 unparsing
Most dialects use Integer, but some, like MySQL, require SIGNED
Source§fn timestamp_cast_dtype(
&self,
_time_unit: &TimeUnit,
tz: &Option<Arc<str>>,
) -> DataType
fn timestamp_cast_dtype( &self, _time_unit: &TimeUnit, tz: &Option<Arc<str>>, ) -> DataType
The SQL type to use for Timestamp unparsing
Most dialects use Timestamp, but some, like MySQL, require Datetime
Some dialects like Dremio does not support WithTimeZone and requires always Timestamp
Source§fn date32_cast_dtype(&self) -> DataType
fn date32_cast_dtype(&self) -> DataType
The SQL type to use for Arrow Date32 unparsing
Most dialects use Date, but some, like SQLite require TEXT
Source§fn supports_column_alias_in_table_alias(&self) -> bool
fn supports_column_alias_in_table_alias(&self) -> bool
Does the dialect support specifying column aliases as part of alias table definition?
(SELECT col1, col2 from my_table) AS my_table_alias(col1_alias, col2_alias)
Source§fn scalar_function_to_sql_overrides(
&self,
unparser: &Unparser<'_>,
func_name: &str,
args: &[Expr],
) -> Result<Option<Expr>>
fn scalar_function_to_sql_overrides( &self, unparser: &Unparser<'_>, func_name: &str, args: &[Expr], ) -> Result<Option<Expr>>
Allows the dialect to override scalar function unparsing if the dialect has specific rules.
Returns None if the default unparsing should be used, or Some(ast::Expr) if there is
a custom implementation for the function.
Source§fn requires_derived_table_alias(&self) -> bool
fn requires_derived_table_alias(&self) -> bool
Whether the dialect requires a table alias for any subquery in the FROM clause
This affects behavior when deriving logical plans for Sort, Limit, etc.
Auto Trait Implementations§
impl Freeze for CustomDialect
impl RefUnwindSafe for CustomDialect
impl Send for CustomDialect
impl Sync for CustomDialect
impl Unpin for CustomDialect
impl UnwindSafe for CustomDialect
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more