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 supports_struct_literal(&self) -> bool
fn supports_struct_literal(&self) -> bool
Return true if the dialect supports the STRUCT literal Read more
Source§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_named_fn_args_with_colon_operator(&self) -> bool
fn supports_named_fn_args_with_colon_operator(&self) -> bool
Returns true if the dialect supports named arguments of the form
FUN(a : '1', b : '2')
.Source§fn supports_named_fn_args_with_assignment_operator(&self) -> bool
fn supports_named_fn_args_with_assignment_operator(&self) -> bool
Returns true if the dialect supports named arguments of the form
FUN(a := '1', b := '2')
.Source§fn supports_named_fn_args_with_rarrow_operator(&self) -> bool
fn supports_named_fn_args_with_rarrow_operator(&self) -> bool
Returns true if the dialect supports named arguments of the form
FUN(a => '1', b => '2')
.Source§fn supports_named_fn_args_with_expr_name(&self) -> bool
fn supports_named_fn_args_with_expr_name(&self) -> bool
Returns true if dialect supports argument name as arbitrary expression.
e.g.
FUN(LOWER('a'):'1', b:'2')
Such function arguments are represented in the AST by the FunctionArg::ExprNamed
variant,
otherwise use the FunctionArg::Named
variant (compatible reason).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_methods(&self) -> bool
fn supports_methods(&self) -> bool
Returns true if the dialect supports method calls, for example: Read more
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_limit_comma(&self) -> bool
fn supports_limit_comma(&self) -> bool
Does the dialect support parsing
LIMIT 1, 2
as LIMIT 2 OFFSET 1
?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 supports_object_name_double_dot_notation(&self) -> bool
fn supports_object_name_double_dot_notation(&self) -> bool
Returns true if the dialect supports double dot notation for object names Read more
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 parse_column_option(
&self,
_parser: &mut Parser<'_>,
) -> Result<Option<Result<Option<ColumnOption>, ParserError>>, ParserError>
fn parse_column_option( &self, _parser: &mut Parser<'_>, ) -> Result<Option<Result<Option<ColumnOption>, ParserError>>, ParserError>
Dialect-specific column option 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)
fn supports_explain_with_utility_options(&self) -> bool
fn supports_asc_desc_in_column_definition(&self) -> bool
Source§fn supports_factorial_operator(&self) -> bool
fn supports_factorial_operator(&self) -> bool
Returns true if the dialect supports
a!
expressionsSource§fn supports_eq_alias_assignment(&self) -> bool
fn supports_eq_alias_assignment(&self) -> bool
Returns true if this dialect supports treating the equals operator
=
within a SelectItem
as an alias assignment operator, rather than a boolean expression.
For example: the following statements are equivalent for such a dialect: Read moreSource§fn supports_try_convert(&self) -> bool
fn supports_try_convert(&self) -> bool
Returns true if this dialect supports the
TRY_CONVERT
functionSource§fn supports_bang_not_operator(&self) -> bool
fn supports_bang_not_operator(&self) -> bool
Returns true if the dialect supports
!a
syntax for boolean NOT
expressions.Source§fn supports_listen_notify(&self) -> bool
fn supports_listen_notify(&self) -> bool
Returns true if the dialect supports the
LISTEN
, UNLISTEN
and NOTIFY
statementsSource§fn supports_load_data(&self) -> bool
fn supports_load_data(&self) -> bool
Returns true if the dialect supports the
LOAD DATA
statementSource§fn supports_load_extension(&self) -> bool
fn supports_load_extension(&self) -> bool
Returns true if the dialect supports the
LOAD extension
statementSource§fn supports_top_before_distinct(&self) -> bool
fn supports_top_before_distinct(&self) -> bool
Returns true if this dialect expects the
TOP
option
before the ALL
/DISTINCT
options in a SELECT
statement.Source§fn supports_boolean_literals(&self) -> bool
fn supports_boolean_literals(&self) -> bool
Returns true if the dialect supports boolean literals (
true
and false
).
For example, in MSSQL these are treated as identifiers rather than boolean literals.Source§fn supports_show_like_before_in(&self) -> bool
fn supports_show_like_before_in(&self) -> bool
Returns true if this dialect supports the
LIKE 'pattern'
option in
a SHOW
statement before the IN
optionSource§fn supports_comment_on(&self) -> bool
fn supports_comment_on(&self) -> bool
Returns true if this dialect supports the
COMMENT
statementSource§fn supports_create_table_select(&self) -> bool
fn supports_create_table_select(&self) -> bool
Returns true if the dialect supports the
CREATE TABLE SELECT
statementSource§fn supports_partiql(&self) -> bool
fn supports_partiql(&self) -> bool
Returns true if the dialect supports PartiQL for querying semi-structured data
https://partiql.org/index.html
Source§fn is_reserved_for_identifier(&self, kw: Keyword) -> bool
fn is_reserved_for_identifier(&self, kw: Keyword) -> bool
Returns true if the specified keyword is reserved and cannot be
used as an identifier without special handling like quoting.
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> 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