pub struct DatabricksDialect;
Expand description
Trait Implementations§
Source§impl Debug for DatabricksDialect
impl Debug for DatabricksDialect
Source§impl Default for DatabricksDialect
impl Default for DatabricksDialect
Source§fn default() -> DatabricksDialect
fn default() -> DatabricksDialect
Returns the “default value” for a type. Read more
Source§impl Dialect for DatabricksDialect
impl Dialect for DatabricksDialect
Source§fn is_delimited_identifier_start(&self, ch: char) -> bool
fn is_delimited_identifier_start(&self, ch: char) -> bool
Determine if a character starts a quoted identifier. The default
implementation, accepting “double quoted” ids is both ANSI-compliant
and appropriate for most dialects (with the notable exception of
MySQL, MS SQL, and sqlite). You can accept one of characters listed
in
Word::matching_end_quote
hereSource§fn is_identifier_start(&self, ch: char) -> bool
fn is_identifier_start(&self, ch: char) -> bool
Determine if a character is a valid start character for an unquoted identifier
Source§fn is_identifier_part(&self, ch: char) -> bool
fn is_identifier_part(&self, ch: char) -> bool
Determine if a character is a valid unquoted identifier character
Source§fn supports_filter_during_aggregation(&self) -> bool
fn supports_filter_during_aggregation(&self) -> bool
Does the dialect support
FILTER (WHERE expr)
for aggregate queries?Source§fn supports_group_by_expr(&self) -> bool
fn supports_group_by_expr(&self) -> bool
Returns true if the dialects supports
group sets, roll up, or cube
expressions.Source§fn supports_lambda_functions(&self) -> bool
fn supports_lambda_functions(&self) -> bool
Returns true if the dialect supports lambda functions, for example: Read more
Source§fn supports_select_wildcard_except(&self) -> bool
fn supports_select_wildcard_except(&self) -> bool
Returns true if the dialect supports an
EXCEPT
clause following a
wildcard in a select list. Read moreSource§fn require_interval_qualifier(&self) -> bool
fn require_interval_qualifier(&self) -> bool
Whether
INTERVAL
expressions require units (called “qualifiers” in the ANSI SQL spec) to be specified,
e.g. INTERVAL 1 DAY
vs INTERVAL 1
. Read moreSource§fn identifier_quote_style(&self, _identifier: &str) -> Option<char>
fn identifier_quote_style(&self, _identifier: &str) -> Option<char>
Return the character used to quote identifiers.
Source§fn is_proper_identifier_inside_quotes(
&self,
_chars: Peekable<Chars<'_>>,
) -> bool
fn is_proper_identifier_inside_quotes( &self, _chars: Peekable<Chars<'_>>, ) -> bool
Determine if quoted characters are proper for identifier
Source§fn is_custom_operator_part(&self, _ch: char) -> bool
fn is_custom_operator_part(&self, _ch: char) -> bool
Most dialects do not have custom operators. Override this method to provide custom operators.
Source§fn supports_string_literal_backslash_escape(&self) -> bool
fn supports_string_literal_backslash_escape(&self) -> bool
Determine if the dialect supports escaping characters via ’' in string literals. Read more
Source§fn supports_unicode_string_literal(&self) -> bool
fn supports_unicode_string_literal(&self) -> bool
Determine if the dialect supports string literals with
U&
prefix.
This is used to specify Unicode code points in string literals.
For example, in PostgreSQL, the following is a valid string literal: Read moreSource§fn supports_window_clause_named_window_reference(&self) -> bool
fn supports_window_clause_named_window_reference(&self) -> bool
Returns true if the dialect supports referencing another named window
within a window clause declaration. Read more
Source§fn supports_within_after_array_aggregation(&self) -> bool
fn supports_within_after_array_aggregation(&self) -> bool
Returns true if the dialect supports
ARRAY_AGG() [WITHIN GROUP (ORDER BY)]
expressions.
Otherwise, the dialect should expect an ORDER BY
without the WITHIN GROUP
clause, e.g. ANSI
Source§fn supports_connect_by(&self) -> bool
fn supports_connect_by(&self) -> bool
Returns true if the dialect supports CONNECT BY.
Source§fn supports_match_recognize(&self) -> bool
fn supports_match_recognize(&self) -> bool
Returns true if the dialect supports the MATCH_RECOGNIZE operation.
Source§fn supports_in_empty_list(&self) -> bool
fn supports_in_empty_list(&self) -> bool
Returns true if the dialect supports
(NOT) IN ()
expressionsSource§fn supports_start_transaction_modifier(&self) -> bool
fn supports_start_transaction_modifier(&self) -> bool
Returns true if the dialect supports
BEGIN {DEFERRED | IMMEDIATE | EXCLUSIVE} [TRANSACTION]
statementsSource§fn supports_named_fn_args_with_eq_operator(&self) -> bool
fn supports_named_fn_args_with_eq_operator(&self) -> bool
Returns true if the dialect supports named arguments of the form FUN(a = ‘1’, b = ‘2’).
Source§fn supports_numeric_prefix(&self) -> bool
fn supports_numeric_prefix(&self) -> bool
Returns true if the dialect supports identifiers starting with a numeric
prefix such as tables named
59901_user_login
Source§fn supports_window_function_null_treatment_arg(&self) -> bool
fn supports_window_function_null_treatment_arg(&self) -> bool
Returns true if the dialects supports specifying null treatment
as part of a window function’s parameter list as opposed
to after the parameter list. Read more
Source§fn supports_dictionary_syntax(&self) -> bool
fn supports_dictionary_syntax(&self) -> bool
Returns true if the dialect supports defining structs or objects using a
syntax like
{'x': 1, 'y': 2, 'z': 3}
.Source§fn support_map_literal_syntax(&self) -> bool
fn support_map_literal_syntax(&self) -> bool
Returns true if the dialect supports defining object using the
syntax like
Map {1: 10, 2: 20}
.Source§fn supports_parenthesized_set_variables(&self) -> bool
fn supports_parenthesized_set_variables(&self) -> bool
Returns true if the dialect supports multiple variable assignment
using parentheses in a
SET
variable declaration. Read moreSource§fn convert_type_before_value(&self) -> bool
fn convert_type_before_value(&self) -> bool
Returns true if the dialect has a CONVERT function which accepts a type first
and an expression second, e.g.
CONVERT(varchar, 1)
Source§fn supports_triple_quoted_string(&self) -> bool
fn supports_triple_quoted_string(&self) -> bool
Returns true if the dialect supports triple quoted string
e.g.
"""abc"""
Source§fn parse_prefix(
&self,
_parser: &mut Parser<'_>,
) -> Option<Result<Expr, ParserError>>
fn parse_prefix( &self, _parser: &mut Parser<'_>, ) -> Option<Result<Expr, ParserError>>
Dialect-specific prefix parser override
Source§fn supports_trailing_commas(&self) -> bool
fn supports_trailing_commas(&self) -> bool
Does the dialect support trailing commas around the query?
Source§fn supports_projection_trailing_commas(&self) -> bool
fn supports_projection_trailing_commas(&self) -> bool
Does the dialect support trailing commas in the projection list?
Source§fn parse_infix(
&self,
_parser: &mut Parser<'_>,
_expr: &Expr,
_precedence: u8,
) -> Option<Result<Expr, ParserError>>
fn parse_infix( &self, _parser: &mut Parser<'_>, _expr: &Expr, _precedence: u8, ) -> Option<Result<Expr, ParserError>>
Dialect-specific infix parser override Read more
Source§fn get_next_precedence(
&self,
_parser: &Parser<'_>,
) -> Option<Result<u8, ParserError>>
fn get_next_precedence( &self, _parser: &Parser<'_>, ) -> Option<Result<u8, ParserError>>
Dialect-specific precedence override Read more
Source§fn get_next_precedence_default(
&self,
parser: &Parser<'_>,
) -> Result<u8, ParserError>
fn get_next_precedence_default( &self, parser: &Parser<'_>, ) -> Result<u8, ParserError>
Get the precedence of the next token, looking at the full token stream. Read more
Source§fn parse_statement(
&self,
_parser: &mut Parser<'_>,
) -> Option<Result<Statement, ParserError>>
fn parse_statement( &self, _parser: &mut Parser<'_>, ) -> Option<Result<Statement, ParserError>>
Dialect-specific statement parser override Read more
Source§fn prec_value(&self, prec: Precedence) -> u8
fn prec_value(&self, prec: Precedence) -> u8
Decide the lexical Precedence of operators. Read more
Source§fn prec_unknown(&self) -> u8
fn prec_unknown(&self) -> u8
Returns the precedence when the precedence is otherwise unknown
Source§fn describe_requires_table_keyword(&self) -> bool
fn describe_requires_table_keyword(&self) -> bool
Source§fn allow_extract_custom(&self) -> bool
fn allow_extract_custom(&self) -> bool
Returns true if this dialect allows the
EXTRACT
function to words other than Keyword
.Source§fn allow_extract_single_quotes(&self) -> bool
fn allow_extract_single_quotes(&self) -> bool
Returns true if this dialect allows the
EXTRACT
function to use single quotes in the part being extracted.Source§fn supports_create_index_with_clause(&self) -> bool
fn supports_create_index_with_clause(&self) -> bool
Does the dialect support with clause in create index statement?
e.g.
CREATE INDEX idx ON t WITH (key = value, key2)
Auto Trait Implementations§
impl Freeze for DatabricksDialect
impl RefUnwindSafe for DatabricksDialect
impl Send for DatabricksDialect
impl Sync for DatabricksDialect
impl Unpin for DatabricksDialect
impl UnwindSafe for DatabricksDialect
Blanket Implementations§
Source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
Source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
Source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
Source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
Source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
Source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
Source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
Source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
Source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
Source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
Source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
Source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
Source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
Source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
Source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
Source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
Source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
The
AlignTo*
type which aligns Self
to ALIGNMENT
.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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
Source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
Gets a reference to a field, determined by
offset
. Read moreSource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
Gets a muatble reference to a field, determined by
offset
. Read moreSource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
Gets a const pointer to a field,
the field is determined by
offset
. Read moreSource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
Gets a mutable pointer to a field, determined by
offset
. Read moreSource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
Replaces a field (determined by
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
Source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
Replaces a field (determined by
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
Source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
Source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Emulates the pipeline operator, allowing method syntax in more places. Read more
Source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
The same as
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moreSource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
The same as
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.Source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Mutates self using a closure taking self by mutable reference,
passing it along the method chain. Read more
Source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Observes the value of self, passing it along unmodified.
Useful in long method chains. Read more
Source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
Performs a reference to reference conversion with
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read moreSource§impl<This> TransmuteElement for Thiswhere
This: ?Sized,
impl<This> TransmuteElement for Thiswhere
This: ?Sized,
Source§unsafe fn transmute_element<T>(self) -> Self::TransmutedPtrwhere
Self: CanTransmuteElement<T>,
unsafe fn transmute_element<T>(self) -> Self::TransmutedPtrwhere
Self: CanTransmuteElement<T>,
Transmutes the element type of this pointer.. Read more
Source§impl<T> TypeIdentity for Twhere
T: ?Sized,
impl<T> TypeIdentity for Twhere
T: ?Sized,
Source§fn as_type_mut(&mut self) -> &mut Self::Type
fn as_type_mut(&mut self) -> &mut Self::Type
Converts a mutable reference back to the original type.
Source§fn into_type_box(self: Box<Self>) -> Box<Self::Type>
fn into_type_box(self: Box<Self>) -> Box<Self::Type>
Converts a box back to the original type.
Source§fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
Converts an Arc back to the original type. Read more
Source§fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
Converts an Rc back to the original type. Read more
Source§fn from_type_ref(this: &Self::Type) -> &Self
fn from_type_ref(this: &Self::Type) -> &Self
Converts a reference back to the original type.
Source§fn from_type_mut(this: &mut Self::Type) -> &mut Self
fn from_type_mut(this: &mut Self::Type) -> &mut Self
Converts a mutable reference back to the original type.
Source§fn from_type_box(this: Box<Self::Type>) -> Box<Self>
fn from_type_box(this: Box<Self::Type>) -> Box<Self>
Converts a box back to the original type.